2015-04-15 74 views
2

我有文件 {name:"ajeetkumar",age:26}{age:26,name:"ajeetkumar"}存储在收集样本。mongodb没有更新所有的文件

我想更新的年龄字段我用命令db.sample.update({name:"ajeetkumar"},{$set:{age:28}})

它只更新的头文件,其中name是第一场。为什么?如何更新给定字段的所有记录。字段顺序是否影响更新?

回答

1

{名: “ajeetkumar”,年龄:26}和{年龄:26名: “Ajeetkumar”}

db.sample.update({名称: “ajeetkumar”},{$集:{age:28}})

在第二个文档名称以大写字母A开头,所以您应该在这一个中使用正则表达式。另外你必须使用多选项。这人会为你工作得好:

db.sample.update({name: /^ajeetkumar/i},{$set:{age:28}}, {multi: true}) 
+0

哦,我很抱歉马克西姆是一个错字错误。名字是ajeetkumar。但我得到你的答案,并且工作。谢谢 – Ajeetkumar

1

在默认情况下只更新一个你必须设置的多选项,more info

试试这个:

db.sample.update({name:"ajeetkumar"},{$set:{age:28}}, false, true) 

而且查询是区分大小写所以在你的情况下,它仍然不会更新第二个。

{名: “ajeetkumar”,年龄:26}和{年龄:26名: “Ajeetkumar”}

在第二个文件名与大写字母A开始。可能想看看到regex matching

+0

如果它们都是大写字母A,它仍然只会更新一条记录。如果这是问题,那么他可以考虑与正则表达式匹配。 –