Mongoose Stream,如何更新每个文档?

Posted

技术标签:

【中文标题】Mongoose Stream,如何更新每个文档?【英文标题】:Mongoose Stream, how to update each doc? 【发布时间】:2017-02-19 16:30:58 【问题描述】:

我想根据 updateIds 数组更新 n 个文档。我正在使用 Mongoose Stream .on('data, function() )。这是正确地找到所有正确的文档。但现在我不确定如何更新每个文档。我可以在 on.('data', function(doc)) 里面写类似 doc.update(query, key: value) 的东西吗?

Wine.find(
    '_id':  $in: updateIds
).stream()
    .on('data', function(doc)
        // how do I update a doc property here?
    )
    .on('error', function(error) 
        throw error;
    )
    .on('end', function() 
        // final callback
    );

【问题讨论】:

现在,见mongoosejs.com/docs/queries.html#streaming 【参考方案1】:

你可以这样做。

Wine.find(
    '_id':  $in: updateIds
).stream()
   .on('data', function(doc)
       doc.set('property_name', "value");
       doc.save(function(err)
   );
)
.on('error', function(error) 
    throw error;
)
.on('end', function() 
    // final callback
);

或者如果你想用相同的数据更新文档,你可以这样做,

Wine.update( _id:  $in: updateIds ,
     property: "value" ,
     multi : true,
    function(err, count)
    );

【讨论】:

嗯,这是有道理的。谢谢!

以上是关于Mongoose Stream,如何更新每个文档?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Mongoose 中更新/插入文档?

如何在 Mongoose 中更新/插入文档?

如何在 Mongoose 中更新/插入文档?

Mongoose如何更新子文档字段?

更新 mongoose 子文档会修改原始模式

更新 mongoose 子文档会修改原始模式