代码之家  ›  专栏  ›  技术社区  ›  james.c.funk

对象数组中对象上的Couchdb Mango查询选择器

  •  4
  • james.c.funk  · 技术社区  · 8 年前

    我有一个沙发数据库,里面有表格中的条目

    {
      ...
      "templates" :[
        {"template_id":"1"}
        {"template_id":"2"}
        {"template_id":"3"}
      ]
    }
    

    我正在尝试编写一个mango查询,该查询将查找所有具有包含具有特定template\u id的对象的模板的条目。我知道可以使用视图,但如果可能,我希望使用mango查询

    1 回复  |  直到 8 年前
        1
  •  6
  •   Juanjo Rodriguez    8 年前

    您应该在Mango查询选择器中尝试$elemMatch操作符。此操作员“ 返回包含至少一个元素与提供的查询条件匹配的数组字段的所有文档 "

    此选择器将检索templates数组中包含template\u id:1的任何文档

      {
        "templates": {
          "$elemMatch": 
            {"template_id":"1"} 
        }
      }
    

    elemMatch操作符接受选择器表达式,因此您可以编写更复杂的查询。

     {
        "templates": {
          "$elemMatch": {"$or":[
            {"template_id":"1"},
            {"template_id":"3"}
            ]
          }
      }
    
    推荐文章