2013-10-09 37 views
1

要求:获得所有文件,其中点< 90和增量 '点' +20 数据:的MongoDB:多更新与在条件

{ "_id" : 1, "student" : 1, "type" : "exam", "point" : 115 } 
    { "_id" : 2, "student" : 2, "type" : "exam", "point" : 85 } 
    { "_id" : 3, "student" : 3, "type" : "exam", "point" : 115 } 

Query tried : 
// query below 

db.points.update({},{$ INC: {点:20},点:{LT:110}},{多:真})

On executing : fn[0] == '$'is seen and query has not affected any changes. 

回答

1

可以按如下编写查询:

db.points.update({point:{$lt:110}},{$inc:{point:20}},false,true) 
+0

您能解释布尔值false和true的用法吗? – user556698

+0

第三个参数用于upsert(如果不存在,则插入),最后一个参数用于多个更新。您可以阅读本文档中的详细信息:http://docs.mongodb.org/manual/reference/method/db.collection.update/ –

0

THER e是任何地方在你的更新条件

db.points.update({点:{$ LT:90}},{$ INC:{点:20}},{多:真})

点:{$ lt:90}仅选择点数低于90且增加20的文档

+0

Works ...我错过了封装第二个条件在{}或基本上文档。我们有比基本的mongo控制台更好的编辑器吗? – user556698