【问题标题】:Mongoose 3.4.0 returns [object Object] instead of actual values - NodejsMongoose 3.4.0 返回 [object Object] 而不是实际值 - Nodejs
【发布时间】:2014-02-07 23:22:17
【问题描述】:

这是我的架构

var elementSchema = new Schema({
  name: String,
  storage: {
    url: String,
    type: String
  }
});

但是当我:

var newElement = new Element();
  newElement.storage = {};
  newElement.storage.url = "asd";
  newElement.storage.type = "asd";
  console.log(newElement.storage);

我得到[object Object],而它应该返回{url:"asd",type:"asd"}

事实上,如果我去查询它,我会得到:

{
  storage: "[object Object]",
  bubble: ObjectId("510880b82e6e350200000002"),
  _id: ObjectId("5113c0c0786ece0000000001"),
  __v: 0
}

【问题讨论】:

    标签: node.js mongoose


    【解决方案1】:

    要在像 storage 这样的嵌入式子文档中使用名为 type 的字段,您必须使用显式定义,否则 Mongoose 会感到困惑:

    var elementSchema = new Schema({
      name: String,
      storage: {
        url: String,
        type: { type: String }
      }
    });
    

    【讨论】:

    • 这一直困扰着我,我永远记不起解决方案。谢谢!
    【解决方案2】:

    不要使用console.log(),而是使用

    var util = require('util');
    util.inspect(newElement.storage);
    

    【讨论】:

    • 感谢您的建议,但这并不能解决问题。 :(
    猜你喜欢
    • 2021-10-17
    • 1970-01-01
    • 2014-09-20
    • 2021-05-14
    • 1970-01-01
    • 2022-10-21
    • 2018-05-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多