我在带有Typescript的Node.js中使用猫鼬。
我的架构如下:
Member = mongoose.model("Member", MemberSchema);
const MemberSchema = new mongoose.Schema({
familyName: String,
otherNames: String
}, { timestamps: true });
我可以将find
方法与内联回调一起使用,但是如果尝试以下操作:
Member.find({"_id": req.body.item._id})
.forEach((result,i) => {
result.isDeleted = true;
mongoose.Collection.save(result);
}
我在forEach
遇到错误:
类型“ DocumentQuery”上不存在属性“ forEach”。您忘了使用“等待”吗?
猫鼬文档here似乎说有一种forEach
方法。
如何使用forEach
方法?
答案 0 :(得分:2)
答案取决于您使用的驱动程序, 以下是一些可以帮助您的示例:
Member.find({"_id": req.body.item._id}).forEach(function(doc) {
doc.isDeleted = true;
mongoose.Collection.save(doc)
}, function(err) {
// done or error
});
Member.find({"_id": req.body.item._id}).stream()
.on('data', function(doc){
doc.isDeleted = true;
mongoose.Collection.save(doc)
})
.on('error', function(err){
// handle error
})
.on('end', function(){
// final callback
});