使用MongoDB插入多个嵌套对象

时间:2013-08-02 14:08:15

标签: mongodb

我是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:意外的标记ILLEGAL

2 个答案:

答案 0 :(得分:5)

您在Maisonette末尾错过",这是错误的来源。

{ Order: 4, Answer: "Maisonette }]

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

答案 1 :(得分: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"}
    });