0

我想在一个文档中添加多个子文档。

添加它们的正确方法是什么?

db.document.update({'_id':99999},{$set:{'student':{'name':'Jack','marks':90}}})  
db.document.update({'_id':99999},{$set:{'student':{'name':'Jill','marks':75}}})

上面的语句在文档中插入最后一个子文档。

使用数组更新运算符会出错。

对不起,如果这是重新发布。在任何地方都找不到答案。

4

1 回答 1

4

数组操作工作正常:

db.document.insert({'_id':99999})
db.document.update({'_id':99999},{$push:{'student':{'name':'Jack','marks':90}}})  
db.document.update({'_id':99999},{$push:{'student':{'name':'Jill','marks':75}}})

现在

db.document.findOne({_id: 99999})

会给你

{
  "_id" : 99999,
  "student" : [
    {
      "name" : "Jack",
      "marks" : 90
    },
    {
      "name" : "Jill",
      "marks" : 75
    }
  ]
}

错误$push表示您的文档中已经有该字段并且它不是数组。

例如,下面的代码会给你一个错误$push

db.document.insert({'_id':99998,'student':{'name':'Jack','marks':90}})
db.document.update({'_id':99998},{$push:{'student':{'name':'Jill','marks':75}}})

下面的代码不会

db.document.insert({'_id':99997,'student':[{'name':'Jack','marks':90}]})
db.document.update({'_id':99997},{$push:{'student':{'name':'Jill','marks':75}}})
于 2013-08-06T17:31:13.343 回答