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

pig*_*ack 8 mongoose node.js

这是我的架构

var elementSchema = new Schema({
  name: String,
  storage: {
    url: String,
    type: String
  }
});
Run Code Online (Sandbox Code Playgroud)

但是当我:

var newElement = new Element();
  newElement.storage = {};
  newElement.storage.url = "asd";
  newElement.storage.type = "asd";
  console.log(newElement.storage);
Run Code Online (Sandbox Code Playgroud)

我明白了[object Object],它应该回归{url:"asd",type:"asd"}

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

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

Joh*_*yHK 22

要使用type嵌入式子文档中命名的字段storage,必须使用显式定义,否则Mongoose会混淆:

var elementSchema = new Schema({
  name: String,
  storage: {
    url: String,
    type: { type: String }
  }
});
Run Code Online (Sandbox Code Playgroud)