MongoDB插入多个子文档

时间:2019-08-21 22:11:45

标签: mongodb

需要使用insert()在一个空集合中添加多个子文档。 语法错误,请帮忙。

db.boeken.insert({
    "_id":"A001",
    "auteur":"Stieg Larsson",
    "boek":["titel":"Mannen die vrouwen haten","jaartal":2005],["titel":"De vrouw die met vuur speelde","jaartal":2006]   
})

返回:

[js] uncaught exception: SyntaxError: missing ] after element list :
@(shell):1:71

1 个答案:

答案 0 :(得分:0)

问题是数组boek的格式错误。

您可以在Mongo文档中使用3种数组:

1-值数组:

{
    "_id": "some_id",
    "some_numbers": [1, 2, 3, 4, 5],
    "some_words": ["salt", "bird", "beer"]
}

2-数组数组:

{
    "_id": "some_id",
    "some_arrays": [
        [1, 2, 3, 4, 5],
        ["salt", "bird", "beer"]
    ]
}

3-文档数组(您的情况):

{
    "_id": "some_id",
    "boek":[
        {
            "titel":"Mannen die vrouwen haten",
            "jaartal":2005
        },
        {
            "titel":"De vrouw die met vuur speelde",
            "jaartal":2006
        }
   ]   
}

也就是说,如果要将key:value用作数组boek的元素,则意味着您有一个文档数组。您的代码存在的问题是,数组的每个元素都缺少{}

因此,在您的情况下,正确的代码应为:

db.boeken.insert({
    "_id":"A001",
    "auteur":"Stieg Larsson",
    "boek":[
        {
            "titel":"Mannen die vrouwen haten",
            "jaartal":2005
        },
        {
            "titel":"De vrouw die met vuur speelde",
            "jaartal":2006
        }
    ]   
})
相关问题