所以,我有以下对象
var Sub = {
name: String,
};
var UserSchema = new mongoose.Schema({
name: String,
sub: Sub
});
module.exports = mongoose.model('User', UserSchema);
在数据库中,我有以下内容:
db.users.find({})相当(); { “_id”:ObjectId(“xyz”), “名字”:“约翰”, “sub”:{ “名称”:“子名称” } }
现在,当我查询名为“John”的用户时,“sub”子文档将被检索为字符串
typeof user.sub ==='string'
要执行查询,我使用的是User.findById方法
User.findById("xyz", function(err, user){
console.log(typeof user.sub);
})
有什么线索在这里发生了什么?
答案 0 :(得分:0)
如果未明确定义字段的类型,则猫鼬内部验证有时会返回一个sanatized字符串。我通过在过去定义模式来解决它。
var Sub = new mongoose.Schema({
name: String
});
var UserSchema = new mongoose.Schema({
name: String,
sub: [ Sub ]
});