Mongodb在任何匹配查询中都不返回任何结果

时间:2015-02-24 07:53:57

标签: mongodb mongodb-query

我的数据就像

myData[
    {
       id : 1,
       name : "a1",
       order : {
         id : 1,
         name : "o1",
         status : "2"
       }
    },
    {
       id : 2,
       name : "a2",
       order : {
         id : 1,
         name : "o1",
         status : "2"
       }
    },
    {
       id : 3,
       name : "a1",
       order : {
         id : 1,
         name : "o2",
         status : "3"
       }
    }
    ]

当我试图查询时:

db.myData.find({
   "order" : {
      id : 1
   }
})

相同
db.myData.find({ "order.id" :  1})

我预计会有3个结果但是当我尝试

时它什么也没有返回
db.myData.find({
   "order" : {
         id : 1,
         name : "o2",
         status : "3"
   }
})

它返回一个结果。问题在哪里?

2 个答案:

答案 0 :(得分:1)

我认为你做错了什么。

db.myData.find({ "order" : { id : 1 } })肯定不会返回任何内容,因为它会查找特定的子文档{id : 1}

另一方面,第二个查询应该可以正常运行:db.myData.find({ "order.id" : 1}),尤其是db.myData.find({ "order" : { id : 1, name : "o2", status : "3" } })为您提供的内容。

答案 1 :(得分:0)

db.mydata.find({"order.id" : 1})

此查询应该可以正常工作。看起来您在某处覆盖了文档的默认_id字段行为。