11

サブドキュメントをスキップして制限する必要がある Mongoose を使用したクエリに取り組んでいますが、同じクエリでドキュメント内のフィールドをインクリメントしたいと考えています。オプションだけで実行しようとすると多くの問題が発生したため、現在、チェーンで構築されたクエリです。これは私が持っているものです:

Model.findOne({ shorten_id: id }).select('title content comments views').slice('comments', [0, 10]).exec(function(err, db_res) { if (err) { throw err; } else { console.log(db_res); } });

このクエリを呼び出すときに、ファイルされた「ビュー」を 1 増やしたいのですが、前述のように、多くのことを試しましたが、うまくいきませんでした。

4

1 に答える 1

22

findOneAndUpdateドキュメントを取得しながらドキュメントを変更するために使用できます。

Model.findOneAndUpdate({ shorten_id: id }, { $inc: { fieldToIncrement: 1 })
  .select('title content comments views')
  .slice('comments', [0, 10])
  .exec(function(err, db_res) { 
    if (err) { 
      throw err; 
    } 
    else { 
      console.log(db_res); 
    } 
  });
于 2013-05-03T10:55:51.057 に答える