Вы должны предоставить обратный вызов функции записи, как вы 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, поскольку вы не хотели бы использовать его для данных, которые вы хотите знать о вставке или обновлении, поскольку вы можете потерять некоторые данные из-за неудачной записи.
Возможный дубликат [Ошибка при вставке документа в MongoDB через Node.js] (http://stackoverflow.com/questions/14407834/error-when-inserting-a-document-into-mongodb-via-node- js) – JohnnyHK
Отсутствие функции обратного вызова. , –
Как показывает дубликат, вам необходимо предоставить функцию обратного вызова. Ваш вызов 'insert' не использует обратный вызов. – WiredPrairie