想用一条语句查询三条记录,包括当前记录、上一条、下一条,怎么实现?只知道当前记录的_id,需要按另外一个时间字段排序取相临的记录。
业精于勤,荒于嬉;行成于思,毁于随。
簡単な文章を使うのは難しいですが、少なくとも私の範囲では現実的ではありません いくつかアイデアを提供できます:
db.coll.find({},{"データを 1 列だけ表示するか、数列だけ表示する。少ないほど良い。データ量が多いと使いにくくなる後で並べ替え操作が必要になるためです。" })$natual:1 並べ替え後、値をカーソルに代入し、forEach() で 2 つの変数を使用して、一致条件が満たされるまで現在のデータと前のデータを保存します。が成功すると、前後のデータと現在の 3 つのデータを返すことができます。 他にももっと素晴らしい内部メソッドがあるかもしれません。Banzhuan へようこそ
もう 1 つの方法は、上記に基づいて $natual:1 のデータに順序付けられた数値または文字の列を定期的に追加し、それを別の新しいテーブルに保存し、その ID に基づいてクエリを実行することです。新しいテーブルに一致するデータが最終的に検索され、KEY: value 列を通じて順序どおりに追加されます。その前後のデータが再度クエリされます。
簡単な文章を使うのは難しいですが、少なくとも私の範囲では現実的ではありません
いくつかアイデアを提供できます:
db.coll.find({},{"データを 1 列だけ表示するか、数列だけ表示する。少ないほど良い。データ量が多いと使いにくくなる後で並べ替え操作が必要になるためです。" })$natual:1 並べ替え後、値をカーソルに代入し、forEach() で 2 つの変数を使用して、一致条件が満たされるまで現在のデータと前のデータを保存します。が成功すると、前後のデータと現在の 3 つのデータを返すことができます。
他にももっと素晴らしい内部メソッドがあるかもしれません。Banzhuan へようこそ
もう 1 つの方法は、上記に基づいて $natual:1 のデータに順序付けられた数値または文字の列を定期的に追加し、それを別の新しいテーブルに保存し、その ID に基づいてクエリを実行することです。新しいテーブルに一致するデータが最終的に検索され、KEY: value 列を通じて順序どおりに追加されます。その前後のデータが再度クエリされます。