Mongoose 3.4.0返回[object Object]而不是实际值 - Nodejs

时间:2013-02-07 15:32:37

标签: node.js mongoose

这是我的架构

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
}

2 个答案:

答案 0 :(得分:22)

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

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

答案 1 :(得分:-2)

请勿使用console.log(),而是使用

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