Mongoose _id的显式类型转换?

时间:2016-01-12 18:52:09

标签: mongodb mongoose mongodb-query

当我运行mongoose更新脚本时,属性$in上的_id条件设置为类似:'56952ed6457e483a389c9fe4'而不是ObjectId('56952ed6457e483a389c9fe4')的字符串,查询条件不会比赛。但是,如果我显式键入ObjectId(.),则查询将按预期工作。

问题:我是否需要显式地将字符串类型转换为mongoose对象以使其工作?

这有效:

db.apps.update(
  { $and: [ {name : 'a1'}, {_id : {$in : [Object('56952ed6457e483a389c9fe4')]}} ] }, 
  {"_id" : ObjectId("56952ed6457e483a389c9fe4"), name : "a1", intent_ids: [ObjectId('56952ed6457e483a389c9ff8'), ObjectId('56952ed6457e483a389c9ff9')]} 
);

这不起作用:

db.apps.update(
  { $and: [ {name : 'a1'}, {_id : {$in : ['56952ed6457e483a389c9fe4']}} ] }, 
  {"_id" : ObjectId("56952ed6457e483a389c9fe4"), name : "a1", intent_ids: [ObjectId('56952ed6457e483a389c9ff8'), ObjectId('56952ed6457e483a389c9ff9')]} 
);

0 个答案:

没有答案