This is my schema
var elementSchema = new Schema({
name: String,
storage: {
url: String,
type: String
}
});
However when I:
var newElement = new Element();
newElement.storage = {};
newElement.storage.url = "asd";
newElement.storage.type = "asd";
console.log(newElement.storage);
I get [object Object], whilst it should return {url:"asd",type:"asd"}
In facts, if I go and query it, I get:
{
storage: "[object Object]",
bubble: ObjectId("510880b82e6e350200000002"),
_id: ObjectId("5113c0c0786ece0000000001"),
__v: 0
}
To use a field named type in an embedded sub-document like storage, you have to use an explicit definition or Mongoose gets confused:
var elementSchema = new Schema({
name: String,
storage: {
url: String,
type: { type: String }
}
});
don't use console.log(), use instead
var util = require('util');
util.inspect(newElement.storage);