我在mongoDB中有一个看起来像这样的文件
{" _id" :ObjectId(" 55edbc999113b823360aa912")," car" :"本田", "颜色" :[" Black"," White" ]}
我试图在数组字段中将颜色黑色更新为灰色"颜色"使用此查询
db.words.update({_id:'55edbc999113b823360aa912', color:Black},{$set:{'color.$' : 'Grey' } } )
但是我收到了这个错误。
2015-09-07T12:38:14.259-0400 ReferenceError:未定义黑色
如果我尝试在黑色周围使用逗号,仍然没有找到任何内容
db.words.update({_id:'55edbc999113b823360aa912', color:'Black'},{$set:{'color.$' : 'Grey' } } )
WriteResult({" nMatched":0," nUpserted":0," nModified":0})
更新查询中有什么问题?
答案 0 :(得分:0)
您忘记指定_id
字段是ObjectId,而不是字符串:
db.words.update(
{ _id: ObjectId('55edbc999113b823360aa912'), color: 'Black' },
{ $set: { 'color.$' : 'Grey' } }
)
您确实需要“黑色”周围的引号,因此第二个查询更接近,只是错过了ObjectId()
。