NodeJS的MongoDB函数文档

时间:2015-12-10 11:47:21

标签: javascript node.js mongodb

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

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

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

好的,但是当我搜索findAndRemove的文档时,我发现没有任何帮助。此外,我的IDE(WebStorm)将该方法标记为已弃用。通过自动填充功能,我还发现函数findOneAndDelete没有被标记为已弃用且似乎可以执行我想要的操作,但我无法找到有关该功能的任何内容。

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

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

3 个答案:

答案 0 :(得分:3)

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

您可以在此处找到findAndModify函数的文档,以及插入和更新函数:

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

答案 1 :(得分:3)

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

原生的是:https://github.com/mongodb/node-mongodb-native

但你也可以使用最受欢迎的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)

答案 2 :(得分:0)

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