0

マングース (v3.8) + Node.js

このフィールドを持つ「製品」というモデルがあります。

  upvoted_by: [{
    user_id: { type: Schema.ObjectId, ref: 'Users' },
    timestamp: { type: Date }
  }]

モデルにはUsers他にもたくさんのフィールドがあります。

賛成票を追加するには、次のようにします。

product.upvoted_by.push({
  user_id: req.user,
  timestamp: new Date()
});

upvoted_by.user_id対応するユーザーデータが含まれるようにフィールドに入力しようとしています。

私はこれを試しましたが、うまくいかないようです:

// product (= a document) has been found before
product.populate('upvoted_by.user_id', {
  select: 'username'    // username is a field in the Users model
}, function(err, doc) {
  console.log(JSON.stringify(doc));
});

何が問題なのか、それを修正する方法はありますか?

4

2 に答える 2

3

ドキュメントに従って、次の構文が機能するはずです。ここで、 はメソッドに渡されるselect属性です。Objectpopulate

product.populate({path:"upvoted_by.user_id",
                  select:"username"}).exec(function(err, doc) {
  console.log(err);
  console.log(JSON.stringify(doc));
});
于 2015-01-06T19:01:17.537 に答える