【发布时间】:2019-01-15 01:04:55
【问题描述】:
我正在尝试使用唯一的 ObjectId 更新数组中的项目(意味着将对象 ID 添加到缺少它们的数组对象)
如果我的收藏中有一系列衬衫对象,我试试这个:
db.people.update({
$and : [
_id: ObjectId('5eeb44c6a042791d28a8641f'),
{
$or: [
{ 'shirts._id': { $eq:null } },
{ 'shirts._id':{ $exists:false } }
]
}
]
},{
$set: { 'shirts.$[]._id': new ObjectId() }
},{
"multi" : true
}
);
它为每个数组元素生成 IDENTICAL ObjectsID,我会在上面放置一个唯一索引,但是,用例可能不会在数组中看到超过 2-3 个项目,边缘情况达到 5-6,这似乎是一种滥用索引的
如何使用唯一的 ObjectId 更新多个记录或多个数组对象?
【问题讨论】:
标签: mongodb aggregation-framework