Dot运算符不提取Mongoose Document对象的子属性 [英] Dot operator not fetching child properties of a Mongoose Document object

查看:82
本文介绍了Dot运算符不提取Mongoose Document对象的子属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

console.log('>>>>>>user = '+ user);

输出

>>>>>>user      = { username: 'user1',
  salt: '3303187e50a64889b41a7a1c66d3d3c10b9dec638fdd033bee1221d30d01c5e1',
  hash: 'a174c206d88bee1594bb081dbd32d53420f6ef3d6322104f3d0722d58bc8dd8d',
  _id: 52d3177481daf59c11000001,
  __v: 0 }

但是

console.log('>>>>>>user.hash = '+ user.hash);

输出

>>>>>>user.hash = undefined

可能导致此问题的原因是什么?

What could be causing this?

编辑:有趣的是, user._id ,(仅 it)有效。

Interestingly, user._id, (and only it) works.

推荐答案

更新在mongoose v3.8.19中解决了

这完全是一个猫鼬问题。

It's totally a mongoose issue.

解决方案不是去无架构。我正在使用 strict:false 定义我的模式时(为了使我的数据库模式更少)

A solution was to not go schema-less. I was using strict: false when defining my schema (for making my database schema-less)

var Users = mongoose.model('Users', new mongoose.Schema({
    },{strict:false}));

添加哈希这里解决了它。

var Users = mongoose.model('Users', new mongoose.Schema({
    hash: String
    },{strict:false}));

这篇关于Dot运算符不提取Mongoose Document对象的子属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆