mongoDB:无法向数组对象添加字段

时间:2018-05-30 16:22:58

标签: javascript mongodb

这是我的db文档的样子:

auth

现在我需要在{ "_id" : "aN2jGuR2rSzDx87LB", "content" : { "en" : [ { "content" : "Item 1", "timestamp" : 1518811796 } ] } } 数组的第一个对象中添加另一个字段。 文档本身由ID选择。 结果应该是:

content.en

我试着这样做,但什么也没发生。我甚至都没有收到错误消息。

{
  "_id" : "aN2jGuR2rSzDx87LB",
  "content" : {
    "en" : [
      {
        "content" : "Item 1",
        "timestamp" : 1518811796,
        "user" : {
          "id" : 'userId'
        }
      }
    ]
  }
}

另外,我想为语言使用变量。我怎么做?像Content.update( { _id: id }, { $addToSet: { 'content.en.0.user': { id: 'userId', } } } ) ...

这样的东西

1 个答案:

答案 0 :(得分:0)

当您想要为数组添加某些内容时,

$addToSet非常有用。在您的情况下,您想要修改数组的第一个元素(在索引0),因此您应该只使用$set(这是字段更新运算符):

Content.update(
   { _id: "aN2jGuR2rSzDx87LB" },
   {
      $set: {
         "content.en.0.user": {
         id: "userId",
      }
   }
 }
)