我想在mongodb文档数组字段中推送文档列表。在mongodb中,我们可以将$push
与$each
运算符一起使用,但我们如何在响应式mongo扩展中使用它们。示例如下:
这是我的doucment
{
"_id" : ObjectId("56cadf56c3ad8cb30223613a"),
"locations" : [
{
"_id" : ObjectId("56cadf56c3ad8cb30223613f"),
"fieldType" : "List",
"locationType" : "DEFAULT",
"createdOn" : ISODate("2016-02-22T15:43:42.929Z"),
"value" : "Default",
"active" : true
}
]
}
想要推送上述文件的“位置”属性的文件列表。
[
{
"_id" : ObjectId("56cae036c3ad8cb20a23614b"),
"locationType" : "COMPANY",
"createdOn" : ISODate("2016-02-22T15:47:26.168Z"),
"value" : "India",
"active" : true
},
{
"_id" : ObjectId("56cae036c3ad8cb20a23614b"),
"locationType" : "COMPANY",
"createdOn" : ISODate("2016-02-22T15:47:26.168Z"),
"value" : "USA",
"active" : true
}
]
答案 0 :(得分:0)
val updateOp = Json.obj("$push"-> Json.obj("locations" -> Json.obj("$each" -> Json.toJson(locations))))
collection.update(Json.obj("_id" -> myID), updateOp)
应该为你做,因为'locations'是一个'Location'序列,它是一个带有正确json Read和Writes的case类。使用BSON几乎是一样的。
顺便说一句,也许你想在这里使用$ addToSet。