mongodb查询问题,用于构造where子句

时间:2019-02-15 13:21:46

标签: python mongodb aggregation-framework pymongo

我对mongoDB完全陌生,在下面的查询中有这个信息:

jds=jd.aggregate( [
   {
     "$group": {
        "_id": {"house_NAME":"$house_NAME"},
        "count": { "$sum": 1 }
     }
   },
   { "$match": { "count": { "$gt": 0 } } }
   ] )

返回集合中存在的每个房屋名称的计数。

我的收藏如下:

record_id  house_NAME  status

1          Thomas    Open
2          Panther   Close
3          Thomas    Close

我想要的只是返回状态为“ Open”的值,我想在上面的查询中添加“ and”子句,以便它仅返回状态为“ Open”的那些文档的计数。我不知道该怎么做。

我被困在里面。任何帮助将不胜感激!

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以在管道的开始处添加一个$match阶段

jds=jd.aggregate([
  { "$match": { "status": "Open" }},
  { "$group": {
    "_id": { "house_NAME": "$house_NAME" },
    "count": { "$sum": 1 }
  }},
 { "$match": { "count": { "$gt": 0 }}}
])