我有一个看起来像这样的文件:
{
"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:}
}
}
)
当我尝试上述操作时,我收到如下错误: 不能使用part(contentLayers ....)来遍历元素....
答案 0 :(得分:2)
db.test.update(
{ $and: [{_id: "1"}, {"layers.id": "100" }]},
{ $push:
{
"layers.$.files": 1
}
}
)
这是非java版本,重要的一点是在数组之前有这个$
请注意&#39;可能&#39;这是另一种方式,但上面的工作对我来说是