-4

以下のクエリを C# で記述して、最大値と最小値を見つける方法

db.col.find().sort({val: 1}).limit(1); //min
db.col.find().sort({val: -1}).limit(1); //max

これは私が試したクエリです

var cursor = collection.FindAs<BsonDocument> 
    (Query.Null).SetSortOrder(SortBy.Descending("_id"‌​)).SetLimit(1)
    .SetFields(Fields.Exclude("_id"));

続行するのを手伝ってください。

4

2 に答える 2

2

この方法で、最小および最大のドキュメントを見つけることができます。

var min = collection.FindAll().SetSortOrder(SortBy.Ascending("val")).SetLimit(1).FirstOrDefault();
var max = collection.FindAll().SetSortOrder(SortBy.Descending("val")).SetLimit(1).FirstOrDefault();

コレクションが MongoCollection<T> 型であると仮定すると、最小変数と最大変数は <T> 型のドキュメントです。

これは内部で起こっていることです:

  1. FindAll は MongoCursor<T> を返します
  2. SetSortOrder は、並べ替え順序を設定してカーソルを変更します
  3. SetLimit 制限を設定してカーソルを変更します
  4. FirstOrDefault (標準の .NET LINQ メソッド) は、カーソルを列挙し、唯一のドキュメントを返します。
于 2013-03-01T15:30:50.220 に答える
1
var sort =  Builders<BsonDocument>.Sort.Descending("columnName"); //build sort object   
var result = db.Find().Sort(sort).FirstOrDefault(); //apply it to collection
于 2016-06-13T20:47:32.783 に答える