8

私が取り組んでいるコレクションでは、ドキュメントは次のようになります。

{
    name: 'Myname',
    other: 'other',
    stuff: [
        ['something', 12, 4, 'somethingelse'],
        ['morestuff', 2, 4, 8],
        ['finally', 12, 'again', 58],

    ]
}

アクセスするために、この Mongoose スキーマを作成しました。

var MyDocSchema = new Schema({
    name: String,
    other: String,
    stuff: [],
});

ドキュメントを照会すると、すべてが正常に機能し、コンソールに表示される出力は正しいものになります。しかし、console.log(myDoc.stuff) を実行しようとすると、次のようになりました。

['something', 12, 4, 'somethingelse', 'morestuff', 2, 4, 8, 'finally', 12, 'again', 58]

それ以外の

[
    ['something', 12, 4, 'somethingelse'],
    ['morestuff', 2, 4, 8],
    ['finally', 12, 'again', 58],

]

私は何を間違っていますか?ご協力ありがとうございました!!

4

1 に答える 1

23

免責事項: この回答はかなり古いもので、2012 年です。最も正確ではないかもしれません。

マングースのドキュメントから。

http://mongoosejs.com/docs/schematypes.html : Array セクションまで下にスクロールします。

注: 空の配列を指定することは、 と同等[Mixed]です。以下はすべて の配列を作成しますMixed

それが何を意味するかについての詳細は、Array セクションのすぐ上の Mixed セクションにあります。

これがあなたがする必要があることです。

埋め込みドキュメントのスキーマを定義します。

var Stuff = new Schema({
  name: String,
  value1: Number,
  ...
});

空の配列の代わりにそれを使用します[]:

var MyDocSchema = new Schema({
  name: String,
  other: String,
  stuff: [Stuff],
});
于 2012-07-05T14:08:54.897 に答える