我正在Mongo
以下是一个示例记录:
{ "_id" : ObjectId("53c6e4a86929336e097b18d6"),
"list_id" : 7,
"notes" : {
"note_id_3" : {
"description" : "buy all the bacon", "done" : false }}}
我在list_id
属性上创建了一个唯一索引(而不是让每个访问过的列表的用户都有一个唯一的list_id
,随附的备注将以这种方式存储。我现在尝试添加note
哈希值的新notes
。
根据他们的文件我尝试了这个:
db.todos.update(
{list_id: 7},
{ $push: {
notes: {
note_id_6: { “description”: “it works”, “done”: true}}}})
以及
db.todos.update(
{list_id: 7},
{ $set: {
"notes.note_id_6": {
“description”: “it works”, “done”: true}}}})
但是我收到了错误SyntaxError: Unexpected token ILLEGAL
而且我不确定我的语法的哪一部分是不正确的。
答案 0 :(得分:1)
使用"
代替“
(双引号):
db.todos.update(
{list_id: 7},
{ $push: {
notes: {
note_id_6: { "description": "it works", "done": true}}}})
同样$push
适用于数组。所以如果:
> db.todos.findOne()
{
"_id" : ObjectId("53c6e4a86929336e097b18d6"),
"list_id" : 7,
"notes" : [
{
"note_id" : 3,
"description" : "it works",
"done" : true
}
]
}
添加方式是:
> db.todos.update({list_id: 7}, {$push: {notes: { "note_id": 4, "description": "doesn't works", "done": false}}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })