2016-07-01 3 views
1
private val DATABASE:String = config.getString("db.dbname") 

private val SERVER:ServerAddress = { 
    val hostName=config.getString("db.hostname") 
    val port=config.getString("db.port").toInt 
    new ServerAddress(hostName,port) 
} 

val connectionMongo = MongoConnection(SERVER) 
def collectionMongo(name:String) = connectionMongo(DATABASE)(name) 

val result:WriteResult = collectionMongo("pgroup") 
    .insert(new BasicDBObject("_id",privateArtGroup.getUuid) 
    .append("ArtGroupStatus",privateArtGroup.artGroupStatus.toString()) 
    .append("isNew",privateArtGroup.isNew), WriteConcern.Acknowledged) 

log.info("what is the write concern " + collectionMongo(pgroup).getWriteConcern) 

log.info("what is the write concern "+collectionMongo(pgroup).getWriteConcern) 

で確認応答に設定されていません図書館WriteConcern{w=0, wTimeout=null ms, fsync=null, journal=nullwriteConcernは、私はそのが書き込みで何</p> <p>を設定していない知ってもらうところから、これを印刷し、私が確認しWriteConcern設定していますが、そのは</p> <p>ログstatamentsを設定しないMongoDBの

なぜw=0?この書き込みの懸念が戻る前に、プライマリサーバからの確認応答を待っています使用する操作を書く - それは私がWriteConcern.Acknowledged casbah V 3.1.1

答えて

1
val result:WriteResult = collectionMongo("pgroup") 
.insert(new BasicDBObject("_id",privateArtGroup.getUuid) 
.append("ArtGroupStatus",privateArtGroup.artGroupStatus.toString()) 
.append("isNew",privateArtGroup.isNew), WriteConcern.Acknowledged) 

を使用していますw=1 でなければなりません。

w: 1 - 書き込み操作がスタンドアロンのmongodまたはレプリカセットのプライマリに伝播したことの確認を要求します。なぜw=0 ? i ため

理由指定された挿入クエリは、ジョブが実行される承認writeconcernで実行されると。さらに、コレクションのためではなく、挿入クエリのためのwriteconcernを設定しています。これはあなたがw = 0になっている理由です。

しかし、私はまだ理解できませんでした - 一般的には、w:1はMongoDBのdefault write concernで、なぜw = 0になっていますか?

関連する問題

 関連する問題