我正在尝试找出最佳命令行来查找我的集合中与我的查询参数匹配的所有文档,然后在每个文档中添加一个字段"descriptions_id":"navy-blue"
。基本上我刚刚创建了一个名为descriptions
的集合,我现在要在我的集合images
中的所有文档中引用它。我正在使用db.images.find( { color: "navy-blue" })
来正确提取所有文档,但现在我想更新这些文档并添加descriptions_id: "navy-blue"
。我是否运行update
命令将此字段添加到所有这些文档中?从文档中看,这似乎不正确。
答案 0 :(得分:0)
update
命令使用查询对象来标识要更新的文档。添加{multi: true}
选项以将更新应用于所有匹配的文档,而不仅仅是第一个。
db.images.update(
{color: "navy-blue"},
{$set: {descriptions_id: "navy-blue"}},
{multi: true})
答案 1 :(得分:0)
您还可以使用bulk find and update操作。如果要更新大量文档,将会很有用。查询如下:
var bulk = db.images.initializeUnorderedBulkOp();
bulk.find( { color: "navy-blue" } ).update( {$set: {descriptions_id: "navy-blue"}});
bulk.execute();