我在MongoDB数据库中插入了两个“文档”。
questionsList.insert({question: "When was the War of 1812", answer: "1812", answers: ["1811", "1812", "1813", "1814"]})
questionsList.insert({question: "What year did the US land on the moon?", answer: "1969", answers: ["1969", "1970", "1971", "1972"]})
我只是想从第二个文档中访问答案值。我一直在阅读文档,它似乎不起作用。我可以毫无问题地从第一个文档中检索答案值:var str = questionsList.findOne({}, {question: 1}).answer;
我认为因为我使用findOne
我找不到任何其他匹配项。问题是我似乎无法提取第二个文件及其相应的答案。我尝试了很多不同的方法:
questionList.find({}, {answer: 1})
questionList.find({answer: 1})
questionList.find({}).answer
我的最终目标是将此答案与来自choices
的点击一个答案进行比较。
答案 0 :(得分:1)
如果我正确理解您的场景,您正在尝试根据文档索引检索文档(这不是正确的事情,因为MongoDB不按特定顺序存储文档)。
\t
的工作原因是,因为它只返回集合中的第一个文档。
我认为你应该做的是根据问题找回答案。
类似的东西:
findOne
<强>更新强> 在meteor.js
的情况下db.questionsList.find({question:"What year did the US land on the moon?"},{answer:1})
我们需要给[0]的原因是fetch()返回一个对象数组。 (因为可以有多个具有相同密钥的文档)
答案 1 :(得分:0)
最后一步是:
questionsList.find({"question": "You are human"}, {"answer": 1}).fetch()[0].answer
我们将其视为任何其他对象(即对象列表中的第一个对象并使用点符号)