【发布时间】:2014-05-01 03:25:13
【问题描述】:
我在 mogoose 中进行查询,如果我在查询选择中添加任何参数,则填充参数会丢失,例如我有以下架构:
部门:
var mongoose = require('mongoose');
var schema = mongoose.Schema({
name: {type:String,required: true,index: {unique: true}} ,
text: String
})
module.exports=mongoose.model('Department',schema);
员工:
var mongoose = require('mongoose');
var ObjectId=mongoose.Schema.ObjectId;
var schema = mongoose.Schema({
name: {type:String,required: true} ,
lastName: {type:String} ,
birthday:Date,
email:{type:String,required: true,index: {unique: true}},
_department:{type:ObjectId,ref:'Department'},
isUser:Boolean
},{ strict:false});
module.exports=mongoose.model('Employee',schema);
如果我做:
var query=mongoose.model('Employee').find();
query.select('email').populate('_department','name');
query.exec(function(err,data){
console.log(data);
});
我得到以下输出
[ { email: 'email@email.com.br', _id: 532e570864803bf505e51c81 } ]
我希望这样:
[ { _department: { _id: 532c77c3485925d806436981, name: 'bar' },
email: 'email@email.com.br',
_id: 532e570864803bf505e51c81,
__v: 0 } ]
如果我做了以下:
var query=mongoose.model('Employee').find();
query.populate('_department','name');
query.exec(function(err,data){
console.log(data);
});
我得到这个输出
[ { _department: { _id: 532c77c3485925d806436981, name: 'bar' },
name: 'mimimi',
email: 'email@email.com.br',
_id: 532e570864803bf505e51c81,
__v: 0 } ]
是什么让我想知道选择正在破坏填充。 我的猫鼬版本是 3.8.8
【问题讨论】:
-
你希望
select做什么?
标签: node.js mongodb mongoose mongodb-query