MongoDB排序阵列

MongoDB排序阵列,mongodb,Mongodb,在C#中,如果我有一个BsonArray的BsonDocuments,并且我想根据每个BsonDocument中的一个元素对BsonArray元素进行排序,我该如何做 大概是这样的: BsonArray originalTags = doc["tags"].AsBsonArray; BsonArray newTags = originalTags.OrderBy(what goes here?); 我使用它对嵌套文档进行排序,因此无法使用集合排序方法。 我使用的是官方的C#驱动程序。Order

在C#中,如果我有一个BsonArray的BsonDocuments,并且我想根据每个BsonDocument中的一个元素对BsonArray元素进行排序,我该如何做

大概是这样的:

BsonArray originalTags = doc["tags"].AsBsonArray;
BsonArray newTags = originalTags.OrderBy(what goes here?);
我使用它对嵌套文档进行排序,因此无法使用集合排序方法。
我使用的是官方的C#驱动程序。

OrderBy是LINQ的一个扩展方法(不是C#驱动程序),它有两个重载。其中一个提供lambda来提取要排序的键,另一个提供lambda来比较两个键

下面是一个根据名为“x”的嵌入元素的值对BsonArray进行排序的示例:

var originalTags = new BsonArray {
    new BsonDocument { { "_id", 1 }, { "x", 2 } },
    new BsonDocument { { "_id", 2 }, { "x", 1 } }
};
var newTags = originalTags.OrderBy(t => t.AsBsonDocument["x"]);

foreach (var tag in newTags) {
    Console.WriteLine(tag.ToJson());
}