基本的MongoDb检索

时间:2016-09-03 20:31:11

标签: mongodb find

我在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的点击一个答案进行比较。

2 个答案:

答案 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

我们将其视为任何其他对象(即对象列表中的第一个对象并使用点符号)