Mongodb查找和插入
我想: 1) 查找文档 2) 找到的每个文档都包含一个数组,我想在数组中插入一个新的数组元素。如果数组元素已经存在,则不执行任何操作(不要在数组中插入新元素) 我玩过聚合,但似乎找不到插入函数 数据:Mongodb查找和插入,mongodb,Mongodb,我想: 1) 查找文档 2) 找到的每个文档都包含一个数组,我想在数组中插入一个新的数组元素。如果数组元素已经存在,则不执行任何操作(不要在数组中插入新元素) 我玩过聚合,但似乎找不到插入函数 数据: 您可以使用批量操作,特别是和更新。至于添加唯一值,您可以使用 如用户3100115所述,您应按如下方式使用更新: db.collection.update({cell:1},{$addToSet:{sessions:{id: 'test'}}},{multi:true}) 使用co-monk:
您可以使用批量操作,特别是和更新。至于添加唯一值,您可以使用
如用户3100115所述,您应按如下方式使用更新:
db.collection.update({cell:1},{$addToSet:{sessions:{id: 'test'}}},{multi:true})
使用co-monk:
yield users.update({
cell: 1
}, {
$addToSet: {
sessions: {
id: 'test'
}
}
}, {
multi: true
});
一个简单的方法就行了here@user3100115所以像
$match
但是$update
?你真的不需要聚合或批量操作,这很简单。@user3100115我一直在阅读你链接的内容,但不知道如何实现它,如果你举个例子,我可能会更了解它。您好,我试图实现你的答案,但仍然不起作用。我已经用代码更新了这个问题。
yield new Promise(function (resolve, reject) {
var bulk = users.col.initializeUnorderedBulkOp();
bulk.find({
cell: 1
}).update({
$addToSet: {
sessions: {
id: 'test'
}
}
});
bulk.execute(function (err, res) {
console.log(res);
resolve(res);
});
});
var bulk = db.items.initializeUnorderedBulkOp();
bulk.find({cell: socket.cell}).update({$addToSet: {sessions: id}});
db.collection.update({cell:1},{$addToSet:{sessions:{id: 'test'}}},{multi:true})
yield users.update({
cell: 1
}, {
$addToSet: {
sessions: {
id: 'test'
}
}
}, {
multi: true
});