怀疑Mongoose中的标识符

时间:2014-06-14 19:14:44

标签: node.js mongodb mongoose

我无法弄清楚为什么我在执行这段代码时会遇到这种行为:

var mongoose = require('mongoose');
var Countries = require(./countries.js),
Countries = mongoose.model('Countries');

Countries.find({name: 'Germany'}, function(err, obj){
   console.log(obj._id);
   console.log(mongoose.Types.ObjectId(obj._id));
   console.log(obj);
});

结果如下:

undefined
539c96e09d494a0000aff5cb
{ _id: 539c65a6d8d18d0000f5cf64,
name: 'Germany',
__v: 0 }

只有使用整个对象打印的id才是正确的(使用Robomongo直接查看数据库进行验证)。

由于我需要将该ID保存为另一个集合的引用,您是否有任何建议和/或为何会出现此类行为?

1 个答案:

答案 0 :(得分:1)

obj是一个集合,所以你的结果可能不是你所期望的。

Countries.find({name: 'Germany'}, function(err, countries){
  countries.forEach(function(obj) {
   console.log(obj._id);
   console.log(mongoose.Types.ObjectId(obj._id));
   console.log(obj);
   });
});