【发布时间】:2020-04-11 11:14:01
【问题描述】:
我正在尝试在我的 MongoDB 中更新条目。所有对象的结构是:
{
ids: { id_1: '7264432' },
ranktime:
[ { pos: '4',
date: '000' } ],
name: 'Strength',
version: 'Hi',
artist: 'Example'
}
现在我想用如下对象 Upsert ids 对象:
response[i] = {
ids: { id_2: '55551123' },
ranktime:
[ { pos: '4',
date: '000' } ],
name: 'Strength',
version: 'Hi',
artist: 'Example'
}
导致:
{
ids: { id_1: '7264432', id_2: '55551123' },
ranktime:
[ { pos: '4',
date: '000' } ],
name: 'Strength',
version: 'Hi',
artist: 'Example'
}
我正在选择唯一的文档:
collection.updateMany(
{ $and: [{name: response[i].name}, {version: response[i].version}, {artist: response[i].artist}}]} ,
{
$set: {ids: response[i].ids}
},
{upsert: true},
})
但是,如果 ids 字段被新值覆盖,而不是仅仅添加新值,那么所有这些都会发生。 有没有使用 MongoDB 方法的解决方案来实现这一点? 谢谢!
【问题讨论】:
标签: node.js database mongodb javascript-objects