Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获得猫鼬模型中已填充儿童的计数?_Javascript_Node.js_Mongodb_Express_Mongoose - Fatal编程技术网

Javascript 如何获得猫鼬模型中已填充儿童的计数?

Javascript 如何获得猫鼬模型中已填充儿童的计数?,javascript,node.js,mongodb,express,mongoose,Javascript,Node.js,Mongodb,Express,Mongoose,我对猫鼬和猫鼬是新手 有没有什么简单的方法可以在人口统计法之后计算每个主题的答案数 var query = Topic.find({}); query.select("title answersRef"); query.populate({path:"answersRef", select:"_id"}); //here I want count of answers query.exec(function(topicError, topicResult){ res.render('

我对猫鼬和猫鼬是新手

有没有什么简单的方法可以在人口统计法之后计算每个主题的答案数

var query = Topic.find({});
query.select("title answersRef");
query.populate({path:"answersRef", select:"_id"}); //here I want count of answers 

query.exec(function(topicError, topicResult){
    res.render('topic', { topic: topicResult });
});

在网页上,我想显示我从数据库中找到的每个主题的标题以及每个主题的评论数。
topicResult
answersRef
属性包含所有答案,因此您只需获得长度:

query.exec(function(topicError, topicResult){
    var answerCount = topicResult.answerRef.length;
    res.render('topic', { topic: topicResult });
});

这里要考虑的一点是,只要引用对象没有被删除,那么填充的计数与在数组之前存储在数组中的“引用”的数目完全相同。仅当目标集合中不再存在引用的对象时,该值才能减小。按照mongoose存储这些引用的方式,单个引用不可能扩展为每个引用中的多个对象。另外,如果您只选择
\u id
,那么调用
.populate()
没有什么意义,因为这是主对象中已经存储的内容。感谢您回答我的问题!