节点js查询mongodb中的数组项

时间:2016-09-08 09:28:34

标签: javascript arrays node.js mongodb

我是节点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;,但它返回所有数组项。

2 个答案:

答案 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}}]);