0

Mongoose と Express を使用して履歴書作成アプリを作成しています。教育と実務経験の両方が独自のコレクションに含まれるように、モデルを設定しました。これに似たもの:

"degree" : "BA",
"major" : "Econ",
"minor" : "Bus. Admin",
"startDate" : ISODate("2013-12-31T00:00:00Z"),
"endDate" : ISODate("2013-01-01T00:00:00Z"),
"user" : "example@gmail.com",
"created" : ISODate("2013-10-15T19:32:09.357Z"),
"_id" : ObjectId("525d9839ddc8bf7855000001"),
"school" : {
    "name" : "university of alabama",
    "loc" : "austin, tx"
},
"__v" : 0

「user」値に User モデルの _id への参照があります。私のユーザーモデルは次のようになります:

var schema = mongoose.Schema({
_id: {type: String, lowercase: true, trim: true, validate: validEmail }
, name: { first: String, last: String}
, salt: {type: String, required: true}
, hash: {type: String, required: true}
, edu: [{type: String, ref: 'Education'}] });

User モデルの edu セクションに教育モデルからの情報を入力しようとすると、何も見つかりません。

私のクエリはこれです:

var query = User.findById(user)
    .populate('edu');

では、ユーザー モデルが教育モデルを参照できるようにするにはどうすればよいのでしょうか? そのようなフィールドに入力できますか?

どんなアドバイスもとても役に立ちます。ドキュメントやグーグルを精査し、それまでの間、意味のあるランダムなことを試してみます.

ありがとうございました。

4

1 に答える 1

0

が適切に機能するには、mongoose.Schema.Types.ObjectId型を使用する必要があります。populate

var schema = mongoose.Schema({
_id: {type: String, lowercase: true, trim: true, validate: validEmail }
, name: {first: String, last: String}
, salt: {type: String, required: true}
, hash: {type: String, required: true}
, edu: [{type: mongoose.Schema.Types.ObjectId, ref: 'Education'}] });

サイドノート:

  • 自動的に取得するため、定義する必要_idはなく、電子メールであってはなりません。そのために別の電子メール フィールドを使用します。
于 2013-10-15T21:58:26.110 に答える