无法在mongoDB中使用$运算符找到数组元素

时间:2015-09-07 17:05:38

标签: mongodb

我在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})

更新查询中有什么问题?

1 个答案:

答案 0 :(得分:0)

您忘记指定_id字段是ObjectId,而不是字符串:

db.words.update(
    { _id: ObjectId('55edbc999113b823360aa912'), color: 'Black' },
    { $set: { 'color.$' : 'Grey' } }
)

您确实需要“黑色”周围的引号,因此第二个查询更接近,只是错过了ObjectId()