Casbah MongoDB仅更新某些字段
我使用Casbah Scala驱动程序在MongoDB数据库上执行CRUD操作。我想更新特定文档中的特定字段。我使用findAndModify方法,但令我惊讶的是,整个文档都被重写了。我的原始文档在findAndModify调用之前有5个字段,我想更新其中的1个字段。findAndModify调用之后,我只剩下2个字段。这就是我要尝试的Casbah MongoDB仅更新某些字段,mongodb,scala,casbah,Mongodb,Scala,Casbah,我使用Casbah Scala驱动程序在MongoDB数据库上执行CRUD操作。我想更新特定文档中的特定字段。我使用findAndModify方法,但令我惊讶的是,整个文档都被重写了。我的原始文档在findAndModify调用之前有5个字段,我想更新其中的1个字段。findAndModify调用之后,我只剩下2个字段。这就是我要尝试的 val mongoClient = MongoClient() val db = mongoClient(MongoDBSetup.TEMP_DATABASE)
val mongoClient = MongoClient()
val db = mongoClient(MongoDBSetup.TEMP_DATABASE)
val query = MongoDBObject("uid" -> userExam.uid)
val update = MongoDBObject("answers" -> userExam.userAnswers)
db(MongoDBSetup.MONGO_DB_COLLECTION_USER_EXAM).findAndModify(query, update)
还有什么我需要考虑的,只有在文档中修改了答案字段?
您需要用$SETUP更新文档来修改字段的子集。这应该满足您的要求:val update = MongoDBObject(
"$set" -> MongoDBObject("answers" -> userExam.userAnswers)
)
有关mongodb中$set的更多信息:谢谢您的提示。我没有找到使用它的实际语法。我知道我可以使用set运算符,但不知道如何使用它。再次感谢!