MongoDB插入和更新字段

时间:2017-01-07 17:37:34

标签: java mongodb mongodb-query

在我的MongoDB集合中,我有一些字段,其中一个是“EntitySet,现在我需要插入一个新字段,例如”EntityAlchemy“。

现在的样子:

"EntitySet": [ 
    {
            "Name" : "maka",
            "EntityType" : "Person",
            "Relevance" : 0.0,
            "SentimentScore" : 0.0,
            "CountInText" : 0
    }
]

在更新后它应该看起来像这些

"EntitySet" : [ 
    {
        "Name" : "maka",
        "EntityType" : "Person",
        "Relevance" : 0.0,
        "SentimentScore" : 0.0,
        "CountInText" : 0
    }
],
"EntityAlchemy" : [ 
    {
        "Name" : "DZ Bank",
        "EntityType" : "Company",
        "Relevance" : 0.0,
        "SentimentScore" : 0.0,
        "CountInText" : 0
    }
]

我只能找到如何更新现有字段。有人可以帮忙怎么做?

2 个答案:

答案 0 :(得分:1)

使用this post添加更多键值对。

语法是:

db.collection.update({query}, {$set: {key-value pairs}});

示例:

db.coll1.update({_id:1}, 
   {$set: "EntityAlchemy" : [ 
     {
      "Name" : "DZ Bank",
      "EntityType" : "Company",
      "Relevance" : 0.0,
      "SentimentScore" : 0.0,
      "CountInText" : 0
      }
     ]});

答案 1 :(得分:0)

你可以使用$ push for array,如果不存在,mongo会将该字段创建为数组。

var alchemy = {
        "Name" : "DZ Bank",
        "EntityType" : "Company",
        "Relevance" : 0.0,
        "SentimentScore" : 0.0,
        "CountInText" : 0
    };
db.getCollection('test').update({_id:1},{$push : {'EntityAlchemy' : alchemy}});