当您创建与数据库的连接时,您必须为 write 函数提供回调,因为您有 writeConcern 1(它的默认值)。你的代码应该是这样的:
db.createCollection("category",function(errDb,collection){
collection.findOne({name:"test"},function(err,value){
if(value == null)
{
collection.insert({name:"test"}, function(err, docs){
if (err) //do anything you want to do when there is an error
// Here you write code for what you would do when the documents were sucessfully inserted into the collection
});
}
})
})
但是,如果您不希望激活写入关注点,而只想使用您已完成的功能插入,那么当您创建连接时,您将不得不像这样连接。
var MongoClient = require('mongodb').MongoClient;
MongoClient.connect("mongodb://localhost:27017/integration_test_?", {
db: {
w : o
}
}, function(err, db) {
test.equal(null, err);
test.ok(db != null);
// Do anything like you were doing here
}
在这里,我将 writeConcern 设置为 0。这可以防止 mongo.db 向您确认插入或更新是否成功。所以现在你可以使用collection.insert({name:"test"});
在使用 w:0 时要小心谨慎,因为您不希望将它用于要确定插入或更新的数据,因为您可能会由于写入不成功而丢失一些数据。