MongoDB没有在文档中返回空对象

时间:2018-03-07 11:36:28

标签: 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
      });
    }
  );
};

2 个答案:

答案 0 :(得分:0)

问题实际上是minimize: false级别,而Schema选项中未使用new Schema ({...}, {minimize: false}); 会导致删除空对象。

这有效:

var TiApp = require('Titanium/TiApp');
TiApp.app().hideModalControllerAnimated(TiApp.getController().topPresentedController, true);

答案 1 :(得分:0)

问题实际上出在您的Schema上。如果要显示person:{}person:null字段,则可以添加default字段作为默认值。

const schema = new Schema({  
  person: {
    type: String,
    default:{}
  }
}});