大家都知道,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
分享到:
相关推荐
阿里mongo同步工具mongo-shake正是为了解决这些问题而设计的。 Mongo-shake 是阿里巴巴开发的一款高效、稳定且易于使用的MongoDB数据迁移工具,主要用于实现MongoDB集群之间的数据同步。它支持全量数据迁移和增量...
【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
Mongo-Connector是一个强大的工具,用于将MongoDB的数据同步到其他数据存储系统,如Elasticsearch或Solr。在本案例中,我们关注的是版本2.3.0,它专为pyspark2.3.0和Scala2.11构建。这个版本确保了与特定Spark和...
在 Scala 中与 MongoDB 进行交互,通常我们会使用 `mongo-scala-driver`,而不是 `mongo-java-driver`,因为 Scala 驱动提供了更符合 Scala 语言特性的 API 设计。本示例将详细介绍如何使用 `mongo-scala-driver` ...
本资源内含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文档包。...
MongoDB是一个流行的开源、文档型数据库系统,而`mongo-java-driver`是官方提供的Java API,允许开发者在Java应用程序中执行各种数据库操作,如读取、写入、查询等。 在本例中,我们讨论的是`mongo-java-driver`的...
mongo-java-driver-3.12.2.jar,mongo官网上下载的,用于java-api操作mongodn数据库的驱动程序jar包
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,可用于连接mangoDB数据库~~~~~~~~~~~~~~~~~~
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 5.2、5.3和5.4版本的MongoDB扩展的Windows构建,适用于Visual C++ 9编译器(32位和64位)。...
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-driver3.0以上jar压缩包大全 try { //1.连接池相关选项配置 MongoClientOptions options=MongoClientOptions.builder() .connectionsPerHost(poolSize) .minConnectionsPerHost(minpoolsize) ...
mongo-java-driver-3.4.3.jar 是 MongoDB 官方为 Java 开发者提供的 Java 驱动程序的一个特定版本(3.4.3)。这个 JAR 文件包含了与 MongoDB 数据库进行交互所需的类和接口,允许 Java 应用程序连接到 MongoDB 实例...
在"mongo-java-driver-3.2.2"这个版本中,我们探讨的是一个关键的中间件,它允许Java应用程序充分利用MongoDB的功能,包括数据存储、查询、更新以及删除操作。 MongoDB是一个流行的NoSQL数据库系统,以其灵活性、高...
mongo-java-driver-3.11.2,用于java项目连接mongoDB作为类似JDBC一样使用,同时可以作为其它java程序连接mongoDB的工具
mongo-java-driver是java语言操作mongodb数据库的驱动包,封装了针对mongodb的相关操作 代码案例: 数据库和集合操作 连接MongoDB服务: MongoClient mongoClient = new MongoClient(host, port); 连接数据库: ...
在这个特定的场景中,我们讨论的是一个经过改造的`mongo-java-driver-2.14.3.jar.zip`文件,它被优化以适应在Kettle(Pentaho Data Integration)环境中使用,特别是与包含用户认证的MongoDB实例进行交互。...