我对Mongodb很新,到目前为止已成功使用Find, Insert, Update
方法。但是,使用Delete
功能,我无法访问 WriteResult
插入( Works )
productCollection.insert(newProduct, function (err, result) {
callBack(err, { message: result["insertedCount"] + ' product created successfully.' });
});
查找(作品)
productCollection.find({}).toArray(function (err, docs) {
callBack(err, { product: docs });
});
删除(有问题)
productCollection.remove({ id: pId }, { justOne: 1 }, function (err, result) {
callBack(err, { message: result});
});
当我返回 {message:result} 时,我得到了
{
"message": {
"ok": 1,
"n": 0
}
}
但我想真正阅读" n"从结果显示没有删除文件
尝试以下
但在这两种情况下都会返回空对象{}。
答案 0 :(得分:2)
根据Node.js MongoDB驱动程序API的2.0版本,不推荐使用remove()方法,可以使用removeOne()方法代替:
http://mongodb.github.io/node-mongodb-native/2.0/api/Collection.html#remove
要接收已删除的文档数,您需要使用安全模式以确保删除文档。要执行此操作,请通过将{w:1}传递给removeOne()函数来指定写入问题:
productCollection.removeOne({ _id: pId }, { w:1 }, function(err, r) {
// number of records removed: r.result.n
callBack(err, { message: r });
});
希望这有帮助。
答案 1 :(得分:1)
感谢Yelizaveta指出了弃用的方法。但在我的情况下,继续工作
productCollection.removeOne({ id: pId }, { w: 1 }, function (err, r) {
callBack(err, { message: r.result["n"]});
});
我无法 r.result.n 而 r.result [“n”] 工作,我不明白。