我有一个文档,看起来像这样:
{
"id":1,
"layers":
[{
"id" : 100,
"files": [{
"id":1,
"name":"test"
}]
}]
}
@Document(collections="tests")
public class Test() {
string id
Set<..> layers;
}
public class Layers() {
List<..> files;
}
是否有可能(给定一个documentId和layerId)在一个查询中添加一个新的文件对象?比如
db.test.update(
{ _id: 1 },
{ $push:
{
"layers.100.files": {"id":2,"name":"test2:}
}
}
)
当我尝试上面的时,我得到一个错误:不能使用部分(contentLayers ....)遍历元素....
db.test.update(
{ $and: [{_id: "1"}, {"layers.id": "100" }]},
{ $push:
{
"layers.$.files": 1
}
}
)
这是非java版本,重点是在数组
之前有这个$注意,"可能"有另一种方式来做到这一点,但上面的工作对我来说