我正在尝试向mongoDB文档的现有对象添加新的key:value对,但是没有任何步骤可以帮助我

我试过$ each,$ push $ addtoset,但我知道它们是数组的,然后试了$ det,但它正在用新的key:value对更新现有的key:value对

这是我的文件

    {
    test:"abc",
    test2:"cdf",
    test3:{ 1:"one"}
    }


如果您在上述文档中的观察者test3键,我已经有1:“一个”,现在我想在同一对象中添加新键值

喜欢

    {
    test:"abc",
    test2:"cdf",
    test3:{ 1:"one", 2:"two", 3:"three"}
    }


在mongoDB中有可能吗?

这是mongo查询

            let val = parseInt(DYNAMICVALUE)
              var changfeemaildot = (req.session.email).replace(/\./g, '#')
              var seld = {
                _id: ObjectId(rx[0]._id)
              };
              var seldu = {

                $set:{
                emails: {
                   [changfeemaildot]: val
                }
              }
            };

              var collection =
              connection.get().collection('problems');
              collection.update(seld, seldu, function (err, rail) {
              });

最佳答案

您可以使用$set。所以你的代码可以是这样的

db.collection.update({<your_condition>}, {$set: {"test3.2": "two", "test3.3": "three"}});


在您的情况下,将是这样的

var seldu = {$set: {["emails." + changfeemaildot]: val}}

关于javascript - 如何向mongoDB文档的现有子对象添加新的key:value对,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53917630/

10-09 19:03