我正在查询集合,我想更新结果。
我想更新一个字段,让剩余的字段保持不变。
我有“filename”和“projectId”作为键
的条目在这种情况下我正在做:
val olderFiles = conn.find(query ++ ("filename" -> filename) ++ ("projectId" -> file.projectId))
val updatedFiles = olderFiles.map{cursor =>
cursor.put("newField",field)
cursor
}
updatedFiles.foreach(conn += _)
然而这很慢。 如何以更有效的方式更新对象列表?
谢谢!
答案 0 :(得分:1)
这就是我想要的:
conn.update(query ++ ("filename" -> filename) ++ ("projectId" -> projectId),$set ("field" -> field),false,true)
这会更新该查询找到的每个条目。
PS:对于将来的reference,如果有一个字段列表(在这种情况下为.eg文件名),而不是在这些字段中使用foreach并创建N个查询,可以这样做:
"filename" $in Array(fieldList:_*)