2016-07-01 76 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來確認,但它不是設置writeConcern不設置MongoDB中

日誌stataments打印該從那裏我結識了不設置

什麼是寫應答conta WriteConcern{w=0, wTimeout=null ms, fsync=null, journal=null

爲什麼w=0?它應該是w=1 我使用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) 

WriteConcern.Acknowledged - 寫使用此寫入關注將等待確認從主服務器返回之前的操作。

w: 1 - 請求確認寫操作已傳播到副本集中的獨立mongod或主節點。

爲什麼會產生原因w=0 ? i 一旦給定插入查詢執行writeconcern確認作業完成。此外,我們正在爲插入查詢單獨設置writeconcern,而不是集合。這可能是你獲得w = 0的原因。

但我仍然無法弄清楚 - 通常我們有w:1是MongoDB的default write concern以及爲什麼你得到w = 0。