Mongoose _id完整对象比较

时间:2016-10-10 12:26:35

标签: javascript node.js mongodb mongoose

我有一段时间怀疑这个问题:

当使用mongoose时,如果我将(在查询时)猫鼬对象与_id字段进行比较,那么ODM是否是"智能"足以意识到我的意思是与_id字段进行比较。

替代方案很简单。只需映射对象或数组并获取_ids然后进行比较。这就是我到目前为止所做的。但是,我已经进行了一些测试来证明这一点。 Mi的结果相当不错:是的,它确实......到目前为止。

但是我不想蒙上眼睛。我在mongoose docs中找到了这个: http://mongoosejs.com/docs/api.html#document_Document-equals 但根据我的理解,比较的实际行为是不确定的。

此外,这会如何影响(例如)$ in运算符。 我不知道我的怀疑是否清楚。只是为了它,我发布了一个代码示例。

//Say we have this 2 schemas

var roleSchema = new mongoose.Schema({
  name: {type:String, unique:true},
  tier: Number
}};

var userSchema = new mongoose.Schema({
  firstName: {type:String, unique:true},
  lastName: {type:String, unique:true},
  role: {type: mongoose.Schema.Types.ObjectId, ref: 'Roles', default:null}
}};



//Now we have a set of fully populated roles
var _roles = ... //fully populated roles

//So if i want to query users..can i safely do something like this?
Users.find({role:{$in:_roles});

//Or should always map?
Users.find({role:{$in:_roles.map(r => r._id)});

0 个答案:

没有答案