MongoDB сортировать BsonArray - PullRequest
       0

MongoDB сортировать BsonArray

0 голосов
/ 20 октября 2011

В C #, если у меня есть BsonArray из BsonDocuments и я хочу отсортировать элементы BsonArray на основе элемента в каждом BsonDocument, как мне это сделать?

Примерно так:

BsonArray originalTags = doc["tags"].AsBsonArray;
BsonArray newTags = originalTags.OrderBy(what goes here?);

Я использую это для сортировки вложенных документов, поэтому я не могу использовать методы сортировки коллекции.Я использую официальный драйвер C #.

1 Ответ

1 голос
/ 08 ноября 2011

OrderBy - это метод расширения из LINQ (не драйвера C #), и он имеет две перегрузки.В одной вы предоставляете лямбду для извлечения ключа, по которому вы хотите отсортировать, а в другой вы дополнительно предоставляете лямбду, которая сравнивает два ключа.

Вот пример, который сортирует BsonArray на основе значения встроенногоэлемент с именем "x":

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());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...