8

これが私のスキーマです

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
}
4

2 に答える 2

22

typeのような埋め込みサブドキュメントで名前が付けられたフィールドを使用するstorageには、明示的な定義を使用する必要があります。そうしないと、Mongoose が混乱します。

var elementSchema = new Schema({
  name: String,
  storage: {
    url: String,
    type: { type: String }
  }
});
于 2013-02-07T15:46:51.923 に答える
-2

使わないconsole.log()で代わりに使う

var util = require('util');
util.inspect(newElement.storage);
于 2013-02-07T15:34:52.340 に答える