Mongo $推入嵌套数组

时间:2016-01-22 09:25:21

标签: arrays mongodb nested

我想在嵌套数组中添加另一个元素但是在执行句子时没有找到任何巧合

句子如下:

db.classroom.update({
   _id:ObjectId("56a1276741c1375cd4e90b86"), 
   "code.user":{$ne:DBRef("user", 201309)}
 },{
   $push:{
     "code.$.user":{ $ref: "user", $id: 201308 }
   }
 })

收集

{
        "_id" : ObjectId("56a1276741c1375cd4e90b86"),
        "name" : "Desarrollo de Software",
        "comment" : "Salon destinado al Desarollo de Software",
        "code" : [
                {
                        "code" : "ABCDEF123456",
                        "user" : [
                                DBRef("user", 201309)
                        ]
                }
        ]
}

2 个答案:

答案 0 :(得分:0)

如果我正确阅读您的查询,则查找是互斥的。你在哪里搜索

{_id:ObjectId("56a1276741c1375cd4e90b86")}

{"code.user":{$ne:DBRef("user", 201309)}}

$ne含义NOT EQUALS(!=)和您显示的文档说明了该对象,该_id只有您明确不想要的DBRef值。

我怀疑只是删除第二个条款会让你更进一步:

db.classroom.update({
  _id:ObjectId("56a1276741c1375cd4e90b86")},
  {$push:{"code.$.user":{ $ref:"user", $id: 201308 }}})

答案 1 :(得分:0)

  

试试这个

db.classroom.update({
  _id:ObjectId("56a1276741c1375cd4e90b86")},
  {$push:{"code.$.user":{$each:{$ref:"user", $id: 201308 }}}})