MongoDB update数据语法
- 格式:doc
- 大小:50.50 KB
- 文档页数:9
mongodb updatemany的用法
mongodb的updatemany函数用于更新所有匹配条件的文档。
在使用时需要传入两个参数,第一个参数是查询条件,第二个参数是更新的内容。
它的语法如下:
db.collection.updateMany(
<filter>,
<update>,
{
<upsert>: <boolean>,
<writeConcern>: <document>
}
)
其中,filter是一个文档,表示查询的条件;update是一个文档,表示要更新的内容。
upsert是一个可选参数,如果设置为true,则当查询条件不存在时会自动创建一个新的文档;writeConcern也是一个可选参数,表示写入的确认级别。
使用updatemany函数可以方便地批量更新文档,可以使用各种文档操作符和聚合操作符来更新需要的内容,例如:
db.students.updateMany(
{ age: { $gt: 18 } },
{ $set: { isAdult: true } }
)
以上代码将会更新所有年龄大于18的学生文档中的isAdult属性为true。
mongo基本语法MongoDB是一种非关系型数据库管理系统,它使用文档来存储数据,而不是传统的行和列。
在MongoDB中,数据以JSON格式存储,这使得它非常灵活和适合存储各种类型的数据。
本文将介绍MongoDB的基本语法和一些常用操作。
首先,我们需要了解如何连接到MongoDB数据库。
在命令行中输入mongo命令即可连接到默认的MongoDB实例。
如果需要连接到特定的数据库,可以使用mongo 命令后加上数据库名称,例如mongo mydatabase。
一旦连接到数据库,我们就可以开始对数据进行操作。
MongoDB使用一种称为CRUD(Create, Read, Update, Delete)的操作方式来管理数据。
下面是一些基本的语法示例:1. 创建文档(Insert)要向集合中插入数据,可以使用insert方法。
例如,要向名为users的集合中插入一个文档,可以使用以下命令:ers.insert({name: "Alice", age: 25})2. 查询文档(Read)要查询文档,可以使用find方法。
例如,要查找所有年龄大于20的用户,可以使用以下命令:ers.find({age: {$gt: 20}})3. 更新文档(Update)要更新文档,可以使用update方法。
例如,要将名为Alice的用户的年龄更新为30岁,可以使用以下命令:ers.update({name: "Alice"}, {$set: {age: 30}})4. 删除文档(Delete)要删除文档,可以使用remove方法。
例如,要删除名为Alice的用户,可以使用以下命令:ers.remove({name: "Alice"})除了基本的CRUD操作之外,MongoDB还支持聚合操作、索引、事务等高级功能。
例如,可以使用aggregate方法进行数据聚合操作,使用createIndex方法创建索引,使用startSession方法开启事务等。
MongoDB 是一个受欢迎的 NoSQL 数据库,它具有高效、可扩展、可靠的特性,而且它还有一个丰富的查询语法,可以帮助开发人员高效地操作数据。
MongoDB 提供了多种查询语法,以便开发人员根据自己的需求来操作数据库。
MongoDB 的基本查询语法包括 find(),findOne(),update(),remove(),sort(),limit(),skip(),count() 等。
find() 和 findOne() 用于查询数据库中的记录,update() 用于更新记录,remove() 用于删除记录,sort() 用于排序,limit() 用于限制结果数量,skip() 用于跳过某些结果,count() 用于统计查询结果数量。
此外,MongoDB 还支持多条件查询。
多条件查询通过多个条件来筛选数据库中的记录,可以使用 $and 来将多个条件组合在一起,也可以使用 $or 来指定多个条件中的任意一个条件。
MongoDB 还支持正则表达式查询,正则表达式查询可以使用 $regex 来实现,它可以根据字符串模式来查询记录。
此外,MongoDB 还支持数组查询和内嵌文档查询,数组查询可以使用 $all 、$in 和$nin,内嵌文档查询可以使用 $elemMatch 来实现。
总之,MongoDB 拥有丰富的查询语法,它可以帮助开发人员高效地操作数据,简化开发流程,提高开发效率。
mongodb 语法手册
MongoDB 是一种非关系型数据库,它的语法手册主要涵盖了数据插入、查询、更新和删除等操作。
以下是一些常用的 MongoDB 语法:
1. 插入数据:
```javascript
({ field1: "value1", field2: "value2" })
```
2. 查询数据:
```javascript
({ field1: "value1", field2: "value2" })
```
3. 更新数据:
```javascript
({ field1: "value1", field2: "value2" }, { $set: { field3: "new value" } })
```
4. 删除数据:
```javascript
({ field1: "value1", field2: "value2" })
```
其中,`collection` 是集合名称,`field1`、`field2`、`field3` 是字段名称,
`value1`、`value2`、`new value` 是字段对应的值。
这些语法可以组合使用,以完成更复杂的操作。
例如,可以使用 `$and` 和 `$or` 操作符进行复合查
询条件,使用 `$regex` 进行正则表达式查询等。
此外,MongoDB 还支持聚合、索引、分片等高级功能,具体语法可以参考MongoDB 的官方文档。
mongodb的操作语句1. 插入数据:```javascriptdb.collection.insertOne(data)```或```javascriptdb.collection.insertMany([data1, data2, ...])```2. 查询数据:```javascriptdb.collection.find(query, options)```3. 更新数据:```javascriptdb.collection.updateOne(query, update, options)```或```javascriptdb.collection.updateMany(query, update, options)```4. 删除数据:```javascriptdb.collection.deleteOne(query)```或```javascriptdb.collection.deleteMany(query)```5. 聚合查询:```javascriptdb.collection.aggregate(pipeline)```6. 计数:```javascriptdb.collection.countDocuments(query, options)```7. 建立索引:```javascriptdb.collection.createIndex(keys, options)```这些只是 MongoDB 操作语句的一小部分示例。
MongoDB 提供了丰富的操作语句来进行数据插入、查询、更新、删除、聚合等操作。
请注意,在实际使用时,你需要将`db.collection`替换为你实际使用的集合名称。
你还可以根据需要设置查询条件`query`、更新内容`update`、聚合管道`pipeline`等参数。
此外,MongoDB 还提供了更多高级操作语句和选项,可以根据具体需求进行深入学习和使用。
mongodb updatemany 方法概述及解释说明1. 引言1.1 概述本文将介绍MongoDB的updatemany方法,并详细解释其用途和功能。
MongoDB是一种非关系型数据库,使用JSON格式存储数据,具有高性能和可扩展性的优势。
updatemany方法是MongoDB提供的一个用于批量更新多个文档的操作,可以根据指定的条件对符合条件的文档进行更新。
1.2 文章结构本文将分为五个部分进行讲解。
首先,我们会在引言部分介绍文章的概述和结构。
然后,在第二部分“MongoDB updatemany方法”中,我们将详细描述这个方法的定义与用途,并解释参数及语法说明。
接下来,在第三部分“updatemany 方法的执行流程”中,我们会逐步讲解该方法在执行过程中所经历的几个阶段。
第四部分“updatemany方法与其他更新操作对比分析”将与其他常见更新操作进行对比,以便读者更好地理解和运用这个方法。
最后,在第五部分“结论与总结”中,我们将总结updatemany方法的优势并提供使用注意事项。
1.3 目的本文旨在帮助读者全面了解MongoDB中updatemany方法,并通过示例演示和对比分析帮助读者准确地使用这个方法。
通过阅读本文,读者将学会如何批量更新多个文档并灵活操作它们,提高数据处理效率和灵活性。
同时,通过与其他更新操作的对比分析,读者将能够更好地选择合适的方法来满足不同场景下的需求。
希望本文能够为读者提供有价值的指导和参考。
2. MongoDB updatemany方法:2.1 定义与用途:MongoDB的updatemany方法是用于更新多个文档的操作。
它可以根据指定的筛选条件,在集合中匹配到多个文档,并对这些匹配到的文档进行批量更新。
2.2 参数及语法说明:updatemany方法有两个参数,分别是筛选条件和更新操作。
其中,筛选条件决定了要更新哪些文档,而更新操作则定义了具体如何更新这些文档。
MongoDB数据更新⽅法⼲货篇前⾔数据更新是我们⽇常操作数据库必不可少的⼀部分,下⾯这篇⽂章就给⼤家分享了操作MongoDB数据更新的⼀些⼲货,对⼤家具有⼀定的参考学习价值,⼀起来学习学习吧。
常⽤的函数update(<query>,<update>,<upsert>,<multi>) ,其中<query>表⽰筛选的条件,<update>是要更新的数据updateMany()更新所有匹配到的数据upsertupsert是⼀个布尔类型的数据,如果为true时,当根据query条件没有找到匹配的数据时,就表⽰插⼊此条数据,如果为false就表⽰不插⼊数据下⾯将会在⼀个空的集合中更新数据//就会插⼊此条数据,因为没有找到匹配的信息er.update({'name':'chenjiabing','age':22,'sex':"Man"},{$set:{'hobby':'read'}},{'upsert':true});er.update({'name':'chenjiabing','age':22,'sex':"Man"},{$set:{'hobby':'read'}},true); //和上⾯的语句等价//输出 er.find(){ "_id" : ObjectId("59067b70856d5893a687655f"), "age" : 22, "name" : "chenjiabing", "sex" : "Man", "hobby" : "read" }multi如果这个参数为true,就把按条件查出来多条记录全部更新。
mongodb 删除字段使用mongodb删除字段需要使用update操作,update语句可以用来改变现有文档的各个字段,也可以用来删除字段。
如果使用update操作删除字段,需要用到$unset操作符,它用于取消文档中指定的字段。
以下是mongodb删除字段的语法:db.collection.update(。
<query selector> // 选择需要更新的文档。
},。
$unset:{ // 对应的操作。
<field>:value // 指定要删除的字段,可以指定多个。
}。
})。
例如,我们想要从集合users中删除用户jack的password字段,可以使用如下语句:ers.update。
{name:"jack"}, 。
{$unset:{password:1}}。
这个update操作用来更新集合users,只要文档中匹配{name:"jack"}的条件,就会删除password字段。
同时,$unset也可以指定多个字段,如果要删除多个字段,可以使用以下语句:ers.update。
{name:"jack"}, 。
{$unset:{password:1, age:1, gender:1}}。
这里指定的password、age和gender都会被删除,只要集合中匹配{name:"jack"}的条件的文档都会应用这个操作。
上面的方法是一般mongodb删除字段的操作,有时需要对多个文档批量删除字段,这时候可以使用updateMany操作,其语法如下:db.collection.updateMany。
<query selector>, // 指定需要更新的文档条件。
{$unset:。
<field>:value // 指定要删除的字段,可以指定多个。
}}。
例如,我们想要从集合users中一次性删除所有用户的password字段,可以使用如下语句:ers.updateMany。
mongodb建表语句MongoDB是一种面向文档的数据库系统,它提供了一种简单而强大的方法来存储和查询数据。
MongoDB使用特定的语法来定义数据表的结构和数据表之间的关系。
本文将介绍MongoDB中常用的建表语句,包括创建表、插入文档、更新文档和删除文档。
MongoDB中的建表语句包括:1、创建表:MongoDB中使用createCollection()命令来创建表,语法如下: db.createCollection(name, options)其中name为要创建的表名,options是一个选项,可以设置表的属性,如表长度、索引类型、存储引擎等。
2、插入文档:MongoDB中使用insert()命令来插入文档,语法如下:db.collection.insert(document, options)其中document为要插入的文档,options是一个可选项,可以设置插入文档的属性,如表长度、记录类型等。
3、更新文档:MongoDB中使用update()命令来更新文档,语法如下:db.collection.update(query, update, options)其中query是一个文档,用于查询要更新的文档;update是一个文档,用于指定要更新的内容;options是一个可选项,可以设置更新文档的属性,如表长度、记录类型等。
4、删除文档:MongoDB中使用remove()命令来删除文档,语法如下:db.collection.remove(query, options)其中query是一个文档,用于查询要删除的文档;options是一个可选项,可以设置删除文档的属性,如表长度、记录类型等。
总结MongoDB的建表语句为开发者提供了一种简单、高效的方法来操纵数据库。
本文介绍了MongoDB中常用的建表语句,包括创建表、插入文档、更新文档和删除文档,帮助开发者熟悉MongoDB的建表操作。
Mongodb数据更新命令及操作符⼀、Mongodb数据更新命令Mongodb更新有两个命令:update、save。
1.1update命令update命令格式:db.collection.update(criteria,objNew,upsert,multi)参数说明:criteria:查询条件objNew:update对象和⼀些更新操作符upsert:如果不存在update的记录,是否插⼊objNew这个新的⽂档,true为插⼊,默认为false,不插⼊。
multi:默认是false,只更新找到的第⼀条记录。
如果为true,把按条件查询出来的记录全部更新。
⽰例:> db.classes.insert({"name":"c1","count":30})> db.classes.insert({"name":"c2","count":30})> db.classes.find(){ "_id" : ObjectId("5030f3a3721e16c4ab180cd9"), "name" : "c1", "count" : 30 }{ "_id" : ObjectId("5030f3ab721e16c4ab180cda"), "name" : "c2", "count" : 30 }>⽰例1:把count⼤于20的class name修改为c3> db.classes.update({"count":{$gt:20}},{$set:{"name":"c3"}})> db.classes.find(){ "_id" : ObjectId("5030f3a3721e16c4ab180cd9"), "name" : "c3", "count" : 30 }{ "_id" : ObjectId("5030f3ab721e16c4ab180cda"), "name" : "c2", "count" : 30 }>由于没有指定upsert和multi的值,所以全部默认为false,由结果可以看出,只修改了第⼀条符合条件的记录。
mongorepository update 写法MongoRepository是Spring Data提供的一个接口,用于简化MongoDB数据库的CRUD操作。
在MongoRepository中,有很多已经定义好的基本操作方法,例如save、insert、delete、update等。
但是在实际的开发中,可能会有一些特殊的业务场景,需要自定义一些更新操作。
在MongoRepository中,update方法用于更新匹配到的文档。
下面是update方法的写法和相关参考内容。
1. 语法在MongoRepository中,update方法有两种写法:第一种写法:void update(T object);这种写法会使用传入的对象的主键作为查询条件,来更新匹配到的文档。
例如:```userRepository.update(user);```这里的userRepository是继承了MongoRepository的自定义Repository接口。
第二种写法:void update(Query query, Update update);这种写法需要手动构建查询条件query和更新操作update。
例如:```Query query = new Query();query.addCriteria(Criteria.where("name").is("John"));Update update = new Update();update.set("age", 30);userRepository.update(query, update);```这里的userRepository是继承了MongoRepository的自定义Repository接口。
2. 参考内容2.1 MongoDB官方文档MongoDB官方文档是学习和了解MongoDB最权威的参考资料之一。
mongodb update原理MongoDB是一种流行的NoSQL数据库,它提供了灵活的文档存储和查询功能。
在MongoDB中,Update操作用于更新已存在的文档。
下面我们将探讨MongoDB的Update原理。
在MongoDB中,Update操作可以使用`update()`或`replace()`方法来执行。
`update()`方法用于更新文档的指定字段,而`replace()`方法用于完全替换文档。
当执行Update操作时,MongoDB将根据指定的查询条件来定位要更新的文档。
更新操作可以包括替换字段的值、增加新字段或删除字段。
在更新期间,MongoDB使用BSON(Binary JSON)格式来存储和传输文档。
MongoDB通过以下步骤来执行Update操作:1. 定位文档:首先,MongoDB根据指定的查询条件定位到要更新的文档。
这可以通过指定集合名称和查询条件来实现。
2. 检查索引:一旦定位到要更新的文档,MongoDB会检查是否存在适当的索引以加快更新操作的性能。
如果存在合适的索引,MongoDB将使用索引来定位并更新文档;否则,将执行全文档扫描。
3. 更新文档:一旦定位到要更新的文档并确认了索引,MongoDB将执行实际的更新操作。
这可以涉及到字段值的替换、增加新字段或删除现有字段。
4. 日志记录:MongoDB会将已发生的Update操作记录到日志中,以便在系统故障或错误恢复时进行数据恢复。
MongoDB的Update操作具有高度的灵活性,允许使用各种操作符和选项来达到不同的更新需求。
例如,可以使用$set操作符来更新指定字段的值,$inc操作符来增加数值字段的值,$push操作符来向数组中添加元素等。
总结一下,MongoDB的Update原理涉及定位文档、检查索引、更新文档和日志记录等步骤。
这种基于BSON格式的更新机制使得MongoDB成为一个强大且灵活的文档数据库,能够满足各种数据更新需求。
MongoDB之updateUpdate操作只作⽤于集合中存在的⽂档。
MongoDB提供了如下⽅法来更新集合中的⽂档:db.collection.update()db.collection.updateOne() New in version 3.2db.collection.updateMany() New in version 3.2db.collection.replaceOne() New in version 3.你可以通过指定criteria或者filter来指定你想更新的⽂档:update函数执⾏数据更新操作,该函数接受3个主要参数:criteria,action,options:参数criteria⽤于指定⼀个查询,查询选择将要更新的⽬标记录。
参数action⽤于指定更新信息,也可以使⽤操作符来完成。
参数options⽤于指定更新⽂档时的选项,可选值包括:upsert和multi。
upsert可以指定如果数据存在就更新,不存在就创建数据;multi选项指定是否应该更新所有匹配的⽂档,或者只更新第⼀个⽂档(默认⾏为)。
为了更好的演⽰,插⼊数据:ers.insertMany([{_id: 1,name: "sue",age: 19,type: 1,status: "P",favorites: { artist: "Picasso", food: "pizza" },finished: [ 17, 3 ],badges: [ "blue", "black" ],points: [{ points: 85, bonus: 20 },{ points: 85, bonus: 10 }]},{_id: 2,name: "bob",age: 42,type: 1,status: "A",favorites: { artist: "Miro", food: "meringue" },finished: [ 11, 25 ],badges: [ "green" ],points: [{ points: 85, bonus: 20 },{ points: 64, bonus: 12 }]},{_id: 3,name: "ahn",age: 22,type: 2,status: "A",favorites: { artist: "Cassatt", food: "cake" },finished: [ 6 ],badges: [ "blue", "Picasso" ],points: [{ points: 81, bonus: 8 },{ points: 55, bonus: 20 }]},{_id: 4,name: "xi",age: 34,type: 2,status: "D",favorites: { artist: "Chagall", food: "chocolate" },finished: [ 5, 11 ],badges: [ "Picasso", "black" ],points: [{ points: 53, bonus: 15 },{ points: 51, bonus: 15 }]},{_id: 5,name: "xyz",age: 23,type: 2,status: "D",favorites: { artist: "Noguchi", food: "nougat" },finished: [ 14, 6 ],badges: [ "orange" ],points: [{ points: 71, bonus: 20 }]},{_id: 6,name: "abc",age: 43,type: 1,status: "A",favorites: { food: "pizza", artist: "Picasso" },finished: [ 18, 12 ],badges: [ "black", "blue" ],points: [{ points: 78, bonus: 8 },{ points: 57, bonus: 7 }]}])1. 字段更新操作符1.1 覆盖更新下⾯的例⼦使⽤update()函数执⾏更新数据操作,不包含操作符:> ers.find({"name":"xyz"});{ "_id" : 5, "name" : "xyz", "age" : 23, "type" : 2, "status" : "D", "favorites" : { "artist" : "Noguchi", "food" : "nougat" }, "finished" : [ 14, 6 ], "badges" : [ "orange" ], "points" : [ { "points" >修改之后:> ers.update({"name":"xyz"}, {name : "xyz", age:25, school : "xidian", type:1, favorites: {artist : "Noguchi", food : "nougat"}, finished : [4, 5] }, {upsert:true});WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })>>>> ers.find({"name":"xyz"});{ "_id" : 5, "name" : "xyz", "age" : 25, "school" : "xidian", "type" : 1, "favorites" : { "artist" : "Noguchi", "food" : "nougat" }, "finished" : [ 4, 5 ] }该例覆写了集合中的⽂档,并保存更新后的值。
MongoDB update数据语法本文是参考官方文档来介绍的,之所以有官方文档还要在这介绍,一方面是就当翻译,毕竟每次要用时去看英文文档比较累,第二是官方文档讲解比较简单,有时光看官方文档不好理解,我在实际操作的情况下可以做些补充。
好了,不多说了,下面正式开始:mongodb更新有两个命令:1).update()命令db.collection.update( criteria, objNew, upsert, multi )criteria : update的查询条件,类似sql update查询内where后面的objNew : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的upsert : 这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : mongodb默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
例:db.test0.update( { "count" : { $gt : 1 } } , { $set : { "test2" : "OK"} } ); 只更新了第一条记录db.test0.update( { "count" : { $gt : 3 } } , { $set : { "test2" : "OK"} },false,true ); 全更新了db.test0.update( { "count" : { $gt : 4 } } , { $set : { "test5" : "OK"} },true,false ); 只加进去了第一条db.test0.update( { "count" : { $gt : 5 } } , { $set : { "test5" : "OK"} },true,true ); 全加进去了db.test0.update( { "count" : { $gt : 15 } } , { $inc : { "count" : 1} },false,true );全更新了db.test0.update( { "count" : { $gt : 10 } } , { $inc : { "count" : 1} },false,false );只更新了第一条2).save()命令db.collection.save( x )x就是要更新的对象,只能是单条记录。
如果在collection内已经存在一个和x对象相同的"_id"的记录。
mongodb就会把x对象替换collection内已经存在的记录,否则将会插入x对象,如果x内没有_id,系统会自动生成一个再插入。
相当于上面update 语句的upsert=true,multi=false的情况。
例:db.test0.save({count:40,test1:"OK"}); #_id系统会生成db.test0.save({_id:40,count:40,test1:"OK"}); #如果test0内有_id等于40的,会替换,否则插入。
mongodb的更新操作符:1) $inc用法:{ $inc : { field : value } }意思对一个数字字段field增加value,例:> db.test0.find( { "_id" : 15 } );{ "_id" : { "floatApprox" : 15 }, "count" : 16, "test1" : "TESTTEST", "test2" : "OK", "test3" : "TESTTEST", "test4" : "OK", "test5" : "OK" }> db.test0.update( { "_id" : 15 } , { $inc : { "count" : 1 } } );> db.test0.find( { "_id" : 15 } );{ "_id" : { "floatApprox" : 15 }, "count" : 17, "test1" : "TESTTEST", "test2" : "OK", "test3" : "TESTTEST", "test4" : "OK", "test5" : "OK" }> db.test0.update( { "_id" : 15 } , { $inc : { "count" : 2 } } );> db.test0.find( { "_id" : 15 } );{ "_id" : { "floatApprox" : 15 }, "count" : 19, "test1" : "TESTTEST", "test2" : "OK", "test3" : "TESTTEST", "test4" : "OK", "test5" : "OK" }> db.test0.update( { "_id" : 15 } , { $inc : { "count" : -1 } } );> db.test0.find( { "_id" : 15 } );{ "_id" : { "floatApprox" : 15 }, "count" : 18, "test1" : "TESTTEST", "test2" : "OK", "test3" : "TESTTEST", "test4" : "OK", "test5" : "OK" }2) $set用法:{ $set : { field : value } }就是相当于sql的set field = value,全部数据类型都支持$set。
例:> db.test0.update( { "_id" : 15 } , { $set : { "test1" : "testv1","test2" : "testv2","test3" : "testv3","test4" : "testv4" } } );> db.test0.find( { "_id" : 15 } );{ "_id" : { "floatApprox" : 15 }, "count" : 18, "test1" : "testv1", "test2" : "testv2", "test3" : "testv3", "test4" : "testv4", "test5" : "OK" }3) $unset用法:{ $unset : { field : 1} }顾名思义,就是删除字段了。
例:> db.test0.update( { "_id" : 15 } , { $unset : { "test1":1 } } );> db.test0.find( { "_id" : 15 } );{ "_id" : { "floatApprox" : 15 }, "count" : 18, "test2" : "testv2", "test3" : "testv3", "test4" : "testv4", "test5" : "OK" }> db.test0.update( { "_id" : 15 } , { $unset : { "test2": 0 } } );> db.test0.find( { "_id" : 15 } );{ "_id" : { "floatApprox" : 15 }, "count" : 18, "test3" : "testv3", "test4" : "testv4", "test5" : "OK" }> db.test0.update( { "_id" : 15 } , { $unset : { "test3":asdfasf } } );Fri May 14 16:17:38 JS Error: ReferenceError: asdfasf is not defined (shell):0> db.test0.update( { "_id" : 15 } , { $unset : { "test3":"test" } } );> db.test0.find( { "_id" : 15 } );{ "_id" : { "floatApprox" : 15 }, "count" : 18, "test4" : "testv4", "test5" : "OK" }没看出field : 1里面的1是干什么用的,反正只要有东西就行。