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但未设置
日志文件打印出来的地方我知道它没有设置
什么是写作关注WriteConcern{w=0, wTimeout=null ms, fsync=null, journal=null
为什么w=0
?它应该是w=1
我正在使用casbah V 3.1.1
答案 0 :(得分: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。