过滤集合

时间:2017-02-01 13:54:53

标签: mongodb doctrine-odm

我的json:

  {
    "doc_id": "58107c7913065ff99318b268",
    "first_name": "test",
    "last_name": "test123",
    "email": "mail@account.com",
    "company": {
      "company_id": "580ab2b8ded0b2dfa56b9879",
      "name": "Test company",
      "contact_info": null,
      "location": {
        "location_id": "58094b8eded0b2dfa56b9864",
        "name": "NY",
        "formatted_address": "277 Canal St, New York, NY 10013, Stany Zjednoczone",
        "additional_options": "",
        "latitude": 50.894028,
        "longitude": 4.473816
      }
    },
    "role": "USER"
  },

我想搜索user.company.name = 'Test company'user.company.location.name = 'NY'

所有用户

有没有找到它的选项?

这不起作用:

db.getCollection('User').find({"company.name": "NY"})

我也想在教义mongodb中这样做但是没有用。我错了什么?

1 个答案:

答案 0 :(得分:0)

  

也是一件重要的事情。关系是通过引用而不是嵌入文档来进行的。

如果是这种情况,那么使用简单查询基本上是运气不好。简单查询无法进行连接。您只能查询完整的文档。

然而,您可以使用$ lookup运算符执行多步聚合。它是在3.2版本中引入的,因此您可能正在运行兼容版本。

查看introductory postrelevant documentation

请注意,如果您之前没有使用过聚合,那么就会有一些学习曲线 - 至少对我来说就是这种情况。