NodeJS的MongoDBfunction文档

我很困惑。 我试图在findAndModify中使用集合的findAndModify函数,正如在官方的MongoDB文档中所述:

 db.collection('myColl').findAndModify( { query: { itemId: ObjectID(itemId), requesterId: requesterId }, remove: 1 }, function(err, found){ console.log(err, found); }); 

它在控制台中工作正常。 但在NodeJS中,我检索到一个错误。 错误消息告诉我,我必须提供至less一个更新或删除。 在StackOverflow中有一些类似的问题,其中一个提到的使用findAndRemove的答案。

好的,但是当我searchfindAndRemove的文档时,我没有find任何有用的东西。 此外,我的IDE(WebStorm)将该方法标记为已弃用。 通过自动完成,我还find了函数findOneAndDelete ,它没有被标记为废弃,似乎做我想要的,但我无法find任何有关该function。

因为我对NodeJS和MongoDB都很陌生,所以这个东西真的很混乱,我对这个文档感到非常失望。

我的问题是:背景是什么? 我在哪里可以find有用的文档的MongoDB的JavaScript API或如何正确使用MongoDB文档? 我在哪里可以得到有关上述方法的信息?

我假设你正在使用节点的MongoDB驱动程序。

您可以findfindAndModify函数的文档,以及插入和更新函数:

https://mongodb.github.io/node-mongodb-native/markdown-docs/insert.html

有很多Node.js模块用于连接和pipe理MongoDB服务器。

本地的是这样的: https : //github.com/mongodb/node-mongodb-native

但你也可以使用最stream行的一个mongoose: https : //github.com/Automattic/mongoose

说我觉得你的代码是错的应该是:

 db.collection('myColl').findAndModify({ itemId: ObjectID(itemId), requesterId: requesterId }, null, null, { remove: 1 }, function(err, found) { console.log(err, found); }); 

如文档中所述: findAndModify(query, sort, doc, options, callback)

 db.collection('myColl').findAndModify( { itemId: ObjectID(itemId), requesterId: requesterId }, {}, //Do an update here if you want { remove: true }, // Remove the doc function (err, doc) { // do things } ); 

https://mongodb.github.io/node-mongodb-native/markdown-docs/insert.html#example