Mongodb:无法将对象推入数组吗?

时间:2019-07-25 01:57:35

标签: node.js mongodb

我正在尝试将一个对象$push放入Node的Mongodb中的空数组中,但我做不到。但是,使用相同的代码,$push仅输入一个数字(例如)确实可以。

有什么想法吗?

我的文档:

{
  "_id": {
      "$oid": "5d390a119dc142572d0abef8"
  },
  "LastName": "Musk",
  "FirstName": "Elon",
  "myArr": []
}

工作:

let numb = 123;
docs.forEach((doc) => {
  db.collection(collection).update({ _id: doc._id }, { $push: { myArr: numb } });
})

不起作用:

let obj = { string: "Hello world", number: 123 };
docs.forEach((doc) => {
  db.collection(collection).update({ _id: doc._id }, { $push: { myArr: obj } });
})

1 个答案:

答案 0 :(得分:0)

我刚刚在MongoDB的 GUI上尝试过

查询

db.getCollection('collectionName').update({ _id: ObjectId("5b67f2a6bcc32c793f09c209")},{ $push: { myArr: { string: "Hello world", number: 123 } } }); 
在上面的查询中运行后,

集合输出

{
    "_id" : ObjectId("5b67f2a6bcc32c793f09c209"),
    "value1" : [ 
        "a", 
        "b"
    ],
    "myArr" : [ 
        {
            "string" : "Hello world",
            "number" : 123.0
        }
    ],
    "value2" : "ccc"
}