`
andyjackson
  • 浏览: 58343 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

mongo-embedded心得

    博客分类:
  • java
阅读更多

大家都知道,mongo支持对embbeded的子项进行查询和更新操作,其实mongo从1.3.4之后支持对数组中的item为对象的进行查询和更新操作。


'$'符号是进行这类查询的基础。首先,我们要理解他的含义。
官方文档中说到:“The $ operator (by itself) means "position of the matched array item in the query".”该符号指的就是在制定的数组中匹配的item的位置,因此我们看到了希望。下面是它的例子:

> t.find()
{ "_id" : ObjectId("4b97e62bf1d8c7152c9ccb74"), "title" : "ABC",
  "comments" : [ { "by" : "joe", "votes" : 3 }, { "by" : "jane", "votes" : 7 } ] }

> t.update( {'comments.by':'joe'}, {$inc:{'comments.$.votes':1}}, false, true ) 
、**这句是指根据{'comments.by':'joe'}找到匹配的项,然后根据该项所在的位置将投票数增加1
> t.find()
{ "_id" : ObjectId("4b97e62bf1d8c7152c9ccb74"), "title" : "ABC",
  "comments" : [ { "by" : "joe", "votes" : 4 }, { "by" : "jane", "votes" : 7 } ] }

 “Currently the $ operator only applies to the first matched item in the query”,从这句话可知,它只会更新匹配到的第一个元素,而不是所有的元素。

> t.find();
{ "_id" : ObjectId("4b9e4a1fc583fa1c76198319"), "x" : [ 1, 2, 3, 2 ] }
> t.update({x: 2}, {$inc: {"x.$": 1}}, false, true);
> t.find();
{ "_id" : ObjectId("4b9e4a1fc583fa1c76198319"), "x" : [ 1, 3, 3, 2 ] }
//显然只是将第一个2增加了1
 

分享到:
评论
2 楼 zhc0822 2010-08-13  
今天在大师的点拨之下终于解决了困扰了很久的乱码问题 谢谢大师
1 楼 zhc0822 2010-08-10  

相关推荐

    阿里mongo同步工具mongo-shake

    阿里mongo同步工具mongo-shake正是为了解决这些问题而设计的。 Mongo-shake 是阿里巴巴开发的一款高效、稳定且易于使用的MongoDB数据迁移工具,主要用于实现MongoDB集群之间的数据同步。它支持全量数据迁移和增量...

    mongo-c-driver-1.14.0-x86.rar

    【MongoDB C Driver 1.14.0】--截止2019.6.26的最新版本 1、编译好的Mongodb C语言库,包含lib、dll、include,版本1.14.0,32位的 2、包含文件的清单: ......\mongo-c-driver\share\mongo-c-driver\uninstall.cmd

    solr-mongo-importer-1.1.0.jar

    solr-mongo-importer-1.1.0.jar solr-mongo-importer-1.1.0.jar solr-mongo-importer-1.1.0.jar

    mongo-connector-2.11-2.3.0

    Mongo-Connector是一个强大的工具,用于将MongoDB的数据同步到其他数据存储系统,如Elasticsearch或Solr。在本案例中,我们关注的是版本2.3.0,它专为pyspark2.3.0和Scala2.11构建。这个版本确保了与特定Spark和...

    mongo-scala-drive的使用demo

    在 Scala 中与 MongoDB 进行交互,通常我们会使用 `mongo-scala-driver`,而不是 `mongo-java-driver`,因为 Scala 驱动提供了更符合 Scala 语言特性的 API 设计。本示例将详细介绍如何使用 `mongo-scala-driver` ...

    mongo-java-driver-3.9.1

    本资源内含4个文件:mongo-java-driver-3.9.1.jar,MongoDB JDBC驱动包。mongo-java-driver-3.9.1-sources.jar,MongoDB JDBC驱动源代码包。mongo-java-driver-3.9.1-javadoc.jar,MongoDB JDBC驱动JAVA API文档包。...

    mongo-java-driver-3.2.2.jar.zip

    MongoDB是一个流行的开源、文档型数据库系统,而`mongo-java-driver`是官方提供的Java API,允许开发者在Java应用程序中执行各种数据库操作,如读取、写入、查询等。 在本例中,我们讨论的是`mongo-java-driver`的...

    mongo-java-driver-3.12.2.jar

    mongo-java-driver-3.12.2.jar,mongo官网上下载的,用于java-api操作mongodn数据库的驱动程序jar包

    mongoDB for wamp(php_mongo-1.2.12.zip)

    php_mongo-1.2.12-5.2-vc9-nts.dll php_mongo-1.2.12-5.3-vc9.dll php_mongo-1.2.12-5.2-vc9.dll php_mongo-1.2.12-5.4-vc9-nts-x86_64.dll php_mongo-1.2.12-5.3-vc9-nts-x86_64.dll ...

    mongo-java-driver-3.6.4.jar

    mongo-java-driver-3.6.4,可用于连接mangoDB数据库~~~~~~~~~~~~~~~~~~

    mongo-cxx-driver

    MongoDB的C++驱动,即`mongo-cxx-driver`,是一个关键组件,允许开发者使用C++语言与MongoDB数据库进行交互。MongoDB是一款流行的、基于文档的NoSQL数据库,而`mongo-cxx-driver`则是MongoDB官方支持的C++接口,它...

    php_mongo-1.3.1( PHP 5.2, 5.3 and 5.4) builds for Windows VC9 (32bit and 64bit)

    标题 "php_mongo-1.3.1( PHP 5.2, 5.3 and 5.4) builds for Windows VC9 (32bit and 64bit)" 描述了一个针对PHP 5.2、5.3和5.4版本的MongoDB扩展的Windows构建,适用于Visual C++ 9编译器(32位和64位)。...

    mongo-hadoop-core-2.0.0

    mongo-hadoop-core-2.0.0.jar x x s s sa a a s dd . d d

    mongo-java-driver-3.4.2.jar

    mongo-java-driver-3.4.2.jar

    mongo-java-driver最新jar.zip

    mongo-java-driver3.0以上jar压缩包大全 try { //1.连接池相关选项配置 MongoClientOptions options=MongoClientOptions.builder() .connectionsPerHost(poolSize) .minConnectionsPerHost(minpoolsize) ...

    mongo-java-driver-3.4.3,java连接mongodb的jar包驱动包

    mongo-java-driver-3.4.3.jar 是 MongoDB 官方为 Java 开发者提供的 Java 驱动程序的一个特定版本(3.4.3)。这个 JAR 文件包含了与 MongoDB 数据库进行交互所需的类和接口,允许 Java 应用程序连接到 MongoDB 实例...

    mongo-java-driver-3.2.2

    在"mongo-java-driver-3.2.2"这个版本中,我们探讨的是一个关键的中间件,它允许Java应用程序充分利用MongoDB的功能,包括数据存储、查询、更新以及删除操作。 MongoDB是一个流行的NoSQL数据库系统,以其灵活性、高...

    mongo-java-driver-3.11.2.jar

    mongo-java-driver-3.11.2,用于java项目连接mongoDB作为类似JDBC一样使用,同时可以作为其它java程序连接mongoDB的工具

    mongo-java-driver-3.2.2.jar

    mongo-java-driver是java语言操作mongodb数据库的驱动包,封装了针对mongodb的相关操作 代码案例: 数据库和集合操作 连接MongoDB服务: MongoClient mongoClient = new MongoClient(host, port); 连接数据库: ...

    经过改造的mongo-java-driver-2.14.3.jar.zip

    在这个特定的场景中,我们讨论的是一个经过改造的`mongo-java-driver-2.14.3.jar.zip`文件,它被优化以适应在Kettle(Pentaho Data Integration)环境中使用,特别是与包含用户认证的MongoDB实例进行交互。...

Global site tag (gtag.js) - Google Analytics