mongodb用另一个json数据更新一个字段

时间:2014-03-07 06:22:14

标签: mongodb

我有一个mongo db表,如

{
    "_id": ObjectId("531963b60748a6078fe4f345"),
    "acces": "172.1.6.2.18",
    "adapter": "Win 9",
    "flavour": "LokiSnap",
    "jobid": "8",
    "os": "VM-WIN7-32",
    "results": "",
    "tests": "Test01"
}

此处result字段为""。 如何根据result

使用{"test" : "conenct","os":"osf"}更新此表格值jobid 更新表后

{
"_id": ObjectId("531963b60748a6078fe4f345"),
"acces": "172.1.6.2.18",
"adapter": "Win 9",
"flavour": "LokiSnap",
"jobid": "8",
"os": "VM-WIN7-32",
"results": {
    "test": "conenct",
    "os": "osf"
}`,
"tests": "Test01"

}

2 个答案:

答案 0 :(得分:5)

是的,使用$set,这样就不会破坏整个文档,只需设置字段/字段

这是更新一个文档的查询

db.coll.update(
    {"jobid": "8"}, // the filter based on jobid
    {
        $set: { "results": { "test": "conenct", "os": "osf" } }
    } 
)

这是更新所有文档的查询

db.coll.update(
    {"jobid": "8"}, // the filter based on jobid
    {
        $set: { "results": { "test": "conenct", "os": "osf" } }
    } ,
   { multi: true }
)

注意: - 这里,“coll”是你的收藏品名称。

答案 1 :(得分:2)

使用$set,这样就不会破坏整个文档,只需设置一个字段

coll.update(
    { "_id": ObjectId("531963b60748a6078fe4f345") }, // the filter
    {
        $set: { "results": { "test": "conenct", "os": "osf" } },
    } 
)