使用Node.js向MongoDB插入文档时出现错误

15

我正在尝试在Node.js中将文档插入MongoDB。 我已经成功从数据库中读取,并通过命令行界面添加了文档。 但是,我无法从JavaScript中插入文档。 如果我这样做,就会出现错误:

 

错误:没有提供回调函数,无法使用writeConcern

这是我的代码:

var mongodb = require("mongodb");
var MongoClient = mongodb.MongoClient;

MongoClient.connect("mongodb://localhost:27017/test", function(err, db) {
        if (!err) {
            db.collection("test").insert({ str: "foobar" });
        }
    });

我真的一点也想不通为什么会出现这个错误。

我做错了什么,应该怎样做才对?

1个回答

43
您需要为您的insert调用提供一个回调函数,以便该方法可以将发生在插入期间的任何错误传达回给您。
db.collection("test").insert({ str: "foobar" }, function (err, inserted) {
    // check err...
});

或者,如果你真的不关心插入是否成功,可以在选项参数中传递写入关注值 0:

db.collection("test").insert({ str: "foobar" }, { w: 0 });

2
谢谢,看起来它能工作。你能给我指一下这个的文档吗?我找到的所有例子似乎都不是针对Node的。我找不到任何可以直接使用的例子。 - Kendall Frey
3
你所遇到的问题是在 MongoClient 被引入之前,所有的示例代码通常使用默认关闭安全写模式的连接,而在这种情况下,你的代码可以正常工作。但是 MongoClient 默认启用安全模式。请注意,在 insert 文档 中的示例并没有使用安全模式。 - JohnnyHK

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接