MongoDB & Meteor - 推入嵌套数组的查询不起作用,没有抛出错误
MongoDB & Meteor - Query to push into nested array does not work, no error thrown
我正在尝试将数据推送到 Mongo collection 内的嵌套数组中。我已经按照这里的 Mongo 文档 http://docs.mongodb.org/manual/reference/operator/update/positional/,但没有任何运气推入数组。没有错误或异常被抛出并且语法 看起来 正确...
在这个例子中,我试图通过将一个新字符串推入它的 idArr
数组来更新标题为 'Board One' 的 buyer.boards
.我的查询有问题吗?
Mongo Collection
// 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']
},
]
};
}
Javascript
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
对象
我正在尝试将数据推送到 Mongo collection 内的嵌套数组中。我已经按照这里的 Mongo 文档 http://docs.mongodb.org/manual/reference/operator/update/positional/,但没有任何运气推入数组。没有错误或异常被抛出并且语法 看起来 正确...
在这个例子中,我试图通过将一个新字符串推入它的 idArr
数组来更新标题为 'Board One' 的 buyer.boards
.我的查询有问题吗?
Mongo Collection
// 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']
},
]
};
}
Javascript
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
对象