3

DB ref は次の場合に機能します。

Element.
      findOne({unit: unit_id,).
      populate('unit').
      exec(function(err, element) {
        console.log(element)
      }

表示されます

{
  "unit": {
    "id": "10251179680282633",
    "__v": 0,
  },
  "_id": "50b92eec29921b2531000003",
  "__v": 0,
  "created_at": "2012-11-30T22:10:52.513Z"
}

ただし、新しいユニットを作成し、ユニットを自分の要素に入れて保存すると、

unit = new Unit();
element = new Element()
element.unit = unit;

私がする時:

console.log(element)

それは返します:

{
  "unit": "50b9377d29921b2531000004",
  "_id": "50b9377d29921b2531000005",
  "created_at": "2012-11-30T22:47:25.361Z"
}

ユニットをIDとしてではなくオブジェクトとして見たいので、これは私が期待するものではありません。

ヒントはありますか?

4

1 に答える 1

1

これは予想される

あなたのconsole.log(element)例でelementは、ObjectID への参照が含まれています。ドキュメントに保存されている ID に基づいて、独自のコレクションから取得する際に賢くする
のは Mongooseです。populateunitelement

このページでは、これについて詳しく説明しています
http://mongoosejs.com/docs/populate.html

于 2013-01-02T05:45:32.237 に答える