使用子元素_id的MONGODB更新查询始终返回nModified:0

时间:2017-11-06 11:11:44

标签: node.js mongodb nosql

我的问题很简单,但我做错了......

我想更改包含ObjectId ref的字段的所有元素。

我的对象数据:

{
    "_id": {
        "$oid": "5a002c0a8ffd1a227c22d71d"
    },
    "expositor_ref": {
        "$oid": "5a002c008ffd1a227c22d71c"
    },
    "__v": 0,
    "arduino": {
        "$oid": "59fc5df102b8c20d047cd6e3"
    },
    "quantity": 20,
    "name": "bandejaaqui"
}

查询:

Bandeja.update({"arduino": new ObjectId(arduinoID)}, {'$set': {
    'quantity': Number(quantity)
}});

调试模式mongodb:

Mongoose: bandejas.update({ arduino: ObjectId("59fc5df102b8c20d047cd6e3") }, { '$set': { quantity: 0 } }, {})
{ n: 1,
  nModified: 0,
  opTime:
   { ts: Timestamp { _bsontype: 'Timestamp', low_: 3, high_: 1509965951 },
     t: 2 },
  electionId: 7fffffff0000000000000002,
  ok: 1 }

使用普通字段进行测试非常有效...

Bandeja.update({"name": "bandejaaqui"}, {'$set': {
        'quantity': Number(quantity)
    }})
Mongoose: bandejas.update({ name: 'bandejaaqui' }, { '$set': { quantity: 0 } }, {})
{ n: 1,
  nModified: 1,
  opTime:
   { ts: Timestamp { _bsontype: 'Timestamp', low_: 2, high_: 1509966328 },
     t: 2 },
  electionId: 7fffffff0000000000000002,
  ok: 1 }

有什么想法吗? 感谢。

0 个答案:

没有答案