MongoDB & Meteor - 推送到嵌套数组的查询不起作用,没有抛出错误

MongoDB & Meteor - Query to push into nested array does not work, no error thrown

本文关键字:不起作用 查询 错误 出错 数组 嵌套 amp Meteor MongoDB      更新时间:2023-09-26

我正在尝试将数据推送到 Mongo 集合内的嵌套数组中。http://docs.mongodb.org/manual/reference/operator/update/positional/,我已经按照这里的 Mongo 文档进行操作,但没有任何运气进入数组。不会引发任何错误或异常,语法看起来正确...

在此示例中,我尝试通过将新字符串推入其idArr数组来更新标题为"Board One"buyer.boards。 我的查询有问题吗?

蒙戈收藏

// User Document from Meteor.users Collection:
{
    _id: 'userIdqwerty',
    buyer: {
        boards: [
            {
                title: 'Board One',
                idArr: ['id123', 'id456', 'id678']
            },
            {
                title: 'Board Two',
                idArr: ['idABC']
            },
            {
                title: 'Board Three',
                idArr: ['id12345678', 'idqwertyuu']
            },
        ]
    };
}

爪哇语

var options = {
    boardTitle: 'Board One',
    newId: 'idZjodFsp',
    userId: 'userIdqwerty'
};
Meteor.users.update(
    { 
        _id:options.userId, 
        'buyer.boards.$.title':options.boardTitle 
    },
    { $push: { 
        'buyer.boards.$.idArr':options.newId }
    }
);

update函数的query参数中删除位置运算符($)。

Meteor.users.update(
    { 
        _id:options.userId, 
        'buyer.boards.title':options.boardTitle 
    },
    { $push: { 
        'buyer.boards.$.idArr':options.newId }
    }
);

从文档中:

db.collection.update(
   { <array>: value ... },
   { <update operator>: { "<array>.$" : value } }
)

位置运算符应在update参数中使用,而不是query参数中使用。这将仅更新具有匹配title的第一个boards对象。