我将我的mongo实例从版本2.4升级到3.4,并且我的所有更新查询都停止工作,我将$作为索引传递。 如果我在查询中传递静态0或1它工作正常,但$的早期语法根本不起作用。
以下是我的询问:
db.collection('users').update({"email": "u1@u1.com","companies":{"$elemMatch":{"id":"1487006991927"}}},
{
$set: {
"companies.$.details" : {"company_name":"hey updated"}
}
});
我得到的回应:
{ result: { _t: 'UpdateResponse', ok: 1, n: 1, nModified: 1 },
当我在mongo vesrion 2.4上时,这完美无缺,但现在已经不行了。我不能总是传递静态0/1或索引,这是正确的方法吗?
另请注意:响应说1条记录已被修改,但实际上没有任何修改。
{ "_id": "589aa3509a248a3d7a01b784", "businessAndPersonal": "true", "companies": [ { "details": { "company_name": "afsfhey updated" }, "locations": [], "websites": [], "id": "1487006991927" }, { "details": { "company_name": "hey updated" }, "locations": [], "websites": [], "id": "1487007435955" } ] }
提前致谢
答案 0 :(得分:0)