84

lists別のコレクションへの参照とネストされた数値の配列で構成されるオブジェクトの配列を持つ Mongoose スキーマがあります。

var Schema, exports, mongoose, schema;

mongoose = require("mongoose");

Schema = mongoose.Schema;

schema = new Schema({
  name: {
    type: String,
    required: true,
    unique: true,
    trim: true
  },
  lists: [
    {
      list: {
        type: Schema.ObjectId,
        require: true,
        ref: "List"
      },
      allocations: [
        {
          type: Number,
          required: true
        }
      ]
    }
  ],
  createdAt: {
    type: Date,
    "default": Date.now
  },
  updatedAt: {
    type: Date
  }
});

exports = module.exports = mongoose.model("Portfolio", schema);

しかし、. を取得しないpopulateと期待どおりに仕事をすることができませんTypeError: Cannot read property 'ref' of undefined。試してみましpopulate('list')populate('lists list')が、正しく呼び出していないか、スキーマが正しく形成されていません。リストを単独で参照するだけであれば、この問題は発生しません。

lists: [
    {
        type: Schema.ObjectId,
        require: true,
        ref: "List"
    }
  ]

しかし、各リストの横に割り当て配列が必要です。希望する動作を得るために何をする必要がありますか?

4

6 に答える 6

148

私は答えを見つけました:populate('lists.list')動作します。この質問のおかげで: Mongoose populate within an object?

于 2013-05-20T01:07:33.883 に答える