node.js - MongoDB 不返回文档中的空对象

标签 node.js mongodb

我在一个更大的 MongoDB 文档中得到了这个 JSON 片段:

formConfig: {
  person: {},
  title: {name: 'title', ... },
  name: {name: 'name', ...}
}

但是,当我尝试检索包含此 JSON 的文档时,它根本不会返回 person: {}。我得到的只是:

formConfig: {
  title: {name: 'title', ... },
  name: {name: 'name', ...}
}

这完全破坏了前端的功能,因为我需要知道 person 在那里,无论它是否为空。

当我搜索此问题时,我找不到任何类似的问题或资源来解释为什么会出现这种情况,更不用说如何解决它了。

那么我该如何修复它,以便它也返回 person

这是实际的查询,appConfig 包含如上所述的 JSON:

exports.getSingle = (req, res, next) => {

  AppConfig.findOne({_id: req.params.id})
    .exec((err, appConfig) => {

      res.json({
        error: null,
        data: appConfig
      });
    }
  );
};

最佳答案

问题实际上是在 Schema 级别,不在 Schema 选项中使用 minimize: false 会导致空对象被删除。

这有效:

new Schema ({...}, {minimize: false});

关于node.js - MongoDB 不返回文档中的空对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49150940/

相关文章:

node.js - 值被最新请求机器人的人覆盖吗?

node.js - Node 将变量值转换为变量名称以用于解构赋值

javascript - 如何从字符串创建子进程

javascript - 为什么 node.js/bluebird 会出现异常?

php - doctrine odm 为日期字段返回 null

node.js - 如何解压 .asar 文件?

mongodb $in 限制

MongoDB 图集触发获取错误 : TypeError: Cannot access member 'db' of undefined

mongodb - 如何进行casbah批量插入

node.js - 无法读取 null 的属性 'collection'