我使用mongodb数据库来保存记录.
这是一个样本记录:
"_id" : ObjectId("53870ed7e4b00e612650c1b8"),
"_class" : "mkcl.os.transformer.PayloadObject",
"formId" : NumberLong(50),
"dataMap" : {
"240" : "ramanbaug",
"241" : "1234",
"242" : "12345678",
"243" : "mr.joshi",
"244" : "8308009391 ",
"245" : "anuja2487@gmail.com",
"280" : "456",
"287" : "1234",
"276" : "29/05/14",
"247" : "No",
"248" : "No",
"249" : "Yes",
"250" : "No",
"251" : "Yes",
"252" : "No"
}
Run Code Online (Sandbox Code Playgroud)
现在我想更新字段"241"的值.我读到了Update和FindAndModify查询.但没有错误,记录也没有得到更新.
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
Run Code Online (Sandbox Code Playgroud)
在输入相同查询的位置,用于查找要更新的记录
在输入新值的位置,比如在插入查询期间执行,还有3个选项:
upsert =可选.如果设置为true,则在没有文档与查询条件匹配时创建新文档.默认值为false,如果未找到匹配项,则不会插入新文档.因此,如果找不到您的文档,您将创建一个新文档
multi =可选.如果设置为true,则更新符合查询条件的多个文档.如果设置为false,则更新一个文档.默认值为false.有关其他信息,请参阅多参数.
writeConcern =可选.表达写作关注的文件.省略使用默认写入问题.
你可以在这里阅读更多关于写作的内容:http://docs.mongodb.org/manual/core/write-concern/
单个文档更新示例:
db.people.update(
{ name: "Andy" },
{
name: "Andy",
rating: 1,
score: 1
},
{ upsert: true }
)
Run Code Online (Sandbox Code Playgroud)
检查upsert:true,因此如果没有找到name = Andy,它将创建新的doc
多文档更新示例:
db.books.update(
{ stock: { $lte: 10 } },
{ $set: { reorder: true } },
{ multi: true }
)
Run Code Online (Sandbox Code Playgroud)
您的数据示例:
db.people.update(
{ _id: ObjectId("53870ed7e4b00e612650c1b8") },
{
dataMap: {
"241": "321"
}
}
)
Run Code Online (Sandbox Code Playgroud)
应该工作.
这些都在官方文档中:
http://docs.mongodb.org/manual/reference/method/db.collection.update/
| 归档时间: |
|
| 查看次数: |
7326 次 |
| 最近记录: |