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设置为Acknowledged,但未设置
日志状态从我知道它未设置的位置打印出来
什么是concont
WriteConcern{w=0, wTimeout=null ms, fsync=null, journal=null
为什么
w=0
?它应该是w=1
我正在使用
casbah V 3.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。