忽略字段mongodb请求

时间:2019-01-12 13:29:53

标签: arrays node.js mongodb

假设我们在mongodb集合中有这样的对象:

{
  _id: 00000001
  colors: ["green", "yellow"],
  houses: [
    {
      number: 1,
      owner: "John"
    },
    {
      number: 2,
      owner: "John"
    },
    {
      number:3,
      owner: "Dave"
    }
  ]
},
{
  _id: 00000002
  colors: ["green", "red"],
  houses: [
    {
      number: 15,
      owner: "Dave"
    },
  ]
}

因此,要获取颜色数组包含绿色的每个对象,我需要编写的查询看起来像这样:collection.find({colors: "green"}); 现在,如果我想获得约翰拥有房屋的所有对象,我将如何制定这样的查询? 基本上,我要问的是,如果我的查询是collection.find({houses: {owner: "John", number: ?}}),我需要用什么来替换"?",以告诉mongo我不在乎什么值有值。 也许还有另一种我没想到的方法? 感谢您的任何帮助! (顺便说一下,这是一个伪造的示例,因此为什么ID看起来很奇怪,而对象本身似乎并没有太大用处。)

1 个答案:

答案 0 :(得分:1)

要查询对象数组,可以使用dot notation,请尝试:

db.collection.find({ "houses.owner": "John"}})