通过Node.js将文档插入MongoDB时出错

Ken*_*rey 15 javascript mongodb node.js

我正在尝试在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" });
        }
    });
Run Code Online (Sandbox Code Playgroud)

我不能为我的生活找出为什么我得到这个错误.

我做错了什么,我应该怎么做呢?

Joh*_*yHK 43

您需要为调用提供回调函数,insert以便该方法可以将插入期间发生的任何错误传达给您.

db.collection("test").insert({ str: "foobar" }, function (err, inserted) {
    // check err...
});
Run Code Online (Sandbox Code Playgroud)

或者,如果您真的不关心插入是否成功,请在options参数中传递写入关注值0:

db.collection("test").insert({ str: "foobar" }, { w: 0 });
Run Code Online (Sandbox Code Playgroud)

  • 您要点击的是,在引入"MongoClient"之前,所有示例代码通常都使用安全写入模式默认关闭的连接,在这种情况下,您的代码将起作用.但是`MongoClient`默认启用安全模式.请注意,`insert` [docs](http://mongodb.github.com/node-mongodb-native/api-generated/collection.html#insert)中的示例指出它没有使用安全模式. (3认同)
  • 谢谢,它似乎工作.你能指点我的文件吗?我发现的所有例子似乎都不是节点.我找不到任何按原样工作的例子. (2认同)