MongoDB (Java驱动程序)在一个sub sub集合中添加元素



我有一个文档,看起来像这样:

{
 "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版本,重点是在数组

之前有这个$

注意,"可能"有另一种方式来做到这一点,但上面的工作对我来说

相关内容

  • 没有找到相关文章

最新更新