我可以通过mongoose查询中的填充属性获取行数吗?

时间:2015-11-02 12:05:06

标签: node.js mongodb mongoose mongoose-populate

填充时我会遇到类似下面的问题。

{
   title: "Question Title",
   category: {
      "_id": "562ddc95a93f89e012554be1",
      "name": "Category",
      "parent": {
           "_id" : "562ddc95a93f89e012554be1", 
           "name": "Parent Category"
       }
   }
}

和下面的类别对象

{
   "_id" : "562ddc95a93f89e012554be1",
   "name": "Category Name",
   "parent": "562ddc95a93f89e012554be1"
}

我希望在特定的父类别中获取问题。

我尝试这样的查询,但它不起作用。

Questions
   .count("category.parent._id":_id)

我该怎么做?这可能在猫鼬中吗?

1 个答案:

答案 0 :(得分:1)

您可以按照以下方式构建对计数的使用:

 Questions.count({"category.parent._id" : _id}, function(err, c){
         if(err) return err;
         console.log('Count is ' + c);
 });

查看Docs.

中的各种可能性

为了在mongodb shell中测试这个,我在一个名为questions的集合中创建了以下两个文档。

{
    "title" :"Question1",
    "category":{
        "_id":"123",
        "name" : "category 1",
        "parent" : {
            "_id" : "567",
            "name" : "parent category"
        }
    }
},
{
      "title" :"Question2",
      "category":{
          "_id":"124",
          "name" : "category 1",
          "parent" : {
              "_id" : "568",
              "name" : "parent category"
          }
      }
}

此查询应返回1:

db.questions.count({"category.parent._id":"568"})

您应该将标准放在双引号中。如果不使用它可能会产生错误。