0
db.createCollection("category",function(errDb,collection){
    collection.findOne({name:"test"},function(err,value){
        if(value == null)
        {
            collection.insert({name:"test"})
        }
    })
})

エラー: 提供されたコールバックなしで writeConcern を使用することはできません

4

1 に答える 1

0

データベースへの接続を作成したときに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 での使用には注意が必要です。書き込みの失敗により一部のデータが失われる可能性があるため、挿入または更新について確認したいデータには使用したくないためです。

于 2013-08-22T08:42:02.703 に答える