2

我对 MongoDB 很陌生,所以如果这个问题的措辞不正确,请原谅我。我知道如何插入数据库,我也知道我可以拥有一个嵌套对象并知道如何安装它。我有:

Questions.insert({ Order:1, Question: "What type of property is it?", 
    Answers: { Order: 1, Answer: "House" }});

我希望从上面的陈述中你可以看到我的目标是尝试为这个问题插入多个答案(这可能是我出错的地方,这是正确的方法吗?)。所以看着上面的陈述,我想我可以这样插入多个答案:

Questions.insert({ Order:1, Question: "What type of property is it?", 
    Answers: [{ Order: 1,    Answer: "House" }, 
             { Order: 2, Answer: "Flat" }, 
             { Order: 3, Answer: "Bungalow" }, 
             { Order: 4, Answer: "Maisonette }]
});

SyntaxError:意外的令牌非法

4

2 回答 2

5

"在 Maisonette 的末尾缺少 a,这是错误的来源。

{ Order: 4, Answer: "Maisonette }]

否则,您的查询在插入嵌入式文档的正确轨道上。

于 2013-08-02T14:22:06.617 回答
1

您的答案子文档有点像数组。您可以使用两种可能性在每个问题中存储多个答案:

1)只需使用一个数组:

Questions.insert({order : 1, 
    question : "What type of property is it?", 
    answers : [ "House", "Flat", "Bungalow", "Maisonette" ]
    });

2) MongoDB 有时在内部存储数组的方式是简单地使用序数作为每个子文档的键,如下所示:

Questions.insert({order : 1, 
    question : "What type of property is it?", 
    answers : {"1" : "House",
               "2" : "Flat",
               "3" : "Bungalow",
               "4" : "Maisonette"}
    });
于 2013-08-02T14:18:24.593 回答