【发布时间】:2017-07-01 17:48:30
【问题描述】:
嗨,我是 mongoDB 的新手,我有一个像这样的 order 集合。
{
"_id" : ObjectId("11111111111111"),
"stops" : [
{
"_id" : ObjectId("222222222222222"),
"status" : "IN PROGRESS"
},
{
"_id" : ObjectId("33333333333333"),
"status" : "PENDING"
}]
}
我想更新订单id = "11111111111111" 记录的停止状态和
停止id = "222222222222222" 完成。
我在网上搜索并想出了这样的查询
db.order.update(
{'_id': ObjectId("11111111111111"), 'stops._id': ObjectId("222222222222222")},
$set: {
'stops.$.status': "DONE",
}
);
我的问题是
在查询中它使用'stops._id',但是当我们更新它使用'stops.$.status'的字段时
如果我使用'stops.status' 是不是不正确??
我在互联网上搜索了很多,答案和文章让我感到困惑。
所以谁能解释一下什么是正确的方法以及点符号和 $ 运算符之间的区别。
提前谢谢你。
【问题讨论】: