我是节点js中的新手,我需要查询我的节点js脚本,以便它从我的MongoDB返回查询项。 我正在做什么,我使用节点js为特定的questionId应用查询,其中得分为1的MongoDB数据以数组形式存储, 因此,查询将仅返回得分1问题未得分<0。
<t:grid source="rows" exclude="string" row="current">
<p:yCell>
${current.y} / ${current.string}
</p:yCell>
</t:grid>
我申请的节点js代码查询 我尝试了两个查询,但它们返回所有数组项 query = {&#39; question.score&#39;:1}; query = {&#39;问题&#39;:{$ eq:{&#39;得分&#39;:1}}};
{
"_id": "57cfc7b86f0e51ee17d4c512",
"question": [
{
"questionId": "57ce608e2a0d6cad8c48ef8f",
"score": 1,
},
{
"questionId": "57ce608e2a0d6cad8c48ef90",
"score": 0,
},
{
"questionId": "57ce608e2a0d6cad8c48ef91",
"score": 0,
}
]
}
我正在使用此查询,以便仅返回响应&#34; questionId&#34;:&#34; 57ce608e2a0d6cad8c48ef8f&#34;,但它返回所有数组项。
答案 0 :(得分:0)
使用聚合管道:
childQuizInfo.aggregate([{ $unwind: "$question" }, { $match: { "question.score": 1 } }, { $project: { "_id": 0, "questionId": "$question.questionId" } } ]);
有用的链接:
http://excellencenodejsblog.com/mongoose-aggregation-count-group-match-project/
https://docs.mongodb.com/manual/reference/operator/aggregation-pipeline/
答案 1 :(得分:0)
这对你有用:
db.getCollection(&#39;测试&#39;)骨料([{$展开:&#34; $问题&#34;},{$匹配:{&#34; question.score&#34; :1}}]);