Самый простой способ упорядочить список - использовать OrderBy
List<Order> objListOrder =
source.OrderBy(order => order.OrderDate).ToList();
Если вы хотите заказать несколько столбцов, например, следующий SQL Query.
ORDER BY OrderDate, OrderId
Чтобы достичь это вы можете использовать ThenBy
, как показано ниже.
List<Order> objListOrder =
source.OrderBy(order => order.OrderDate).ThenBy(order => order.OrderId).ToList();
MongoDB выделяет пространство для нового документа на основе определенного коэффициента заполнения. Если ваше обновление увеличивает размер документа за пределами первоначально выделенного размера, документ будет перемещен в конец коллекции. Эта же концепция применяется к полям в документе.
FYI, в обновления MongoDB 2.6 сохранят порядок полей со следующими исключениями:
Структура и структура документов в MongoDB на основе принципов JSON. JSON представляет собой набор пар ключ / значение (в частности fieldName / fieldValue для документа и индекса / документа для сбора). С этой точки зрения, похоже, вы не можете вообще опираться на порядок.
Раман, правильно, мы не можем сортировать dictionay, но мы можем сортировать визуализацию диктатора, поэтому мы не можем сортировать поданный заказ документации, но я вижу, что он упорядочен.
Например, в perl to_json есть опция canonical
print to_json( $data, { utf8 => 1, pretty => 1, convert_blessed => 1, canonical => 1 } );
(каноническая опция) выведет объекты JSON, отсортировав их ключи. Это добавляет сравнительно высокие накладные расходы. (конечно, мы делаем больше операций сортировки ...)
Я создал проект, который создает пользовательский mongorc.js, который по умолчанию сортирует ключи документов. Он называется Mongo Hacker
В случае документов, если размер поля изменяется, он выписывает новый документ с полями, отсортированными по имени поля. Это поведение можно увидеть со следующими утверждениями
Случай 1: Изменение размера поля не изменяется, поэтому изменение порядка поля
> db.testcol.find()
> db.testcol.save({a:1,c:3,b:2})
> db.testcol.find()
{ "_id" : ObjectId("4d5efc3bec5855af36834f5a"), "a" : 1, "c" : 3, "b" : 2 }
> db.testcol.update({a:1},{$set:{c:22}})
> db.testcol.find()
{ "_id" : ObjectId("4d5efc3bec5855af36834f5a"), "a" : 1, "c" : 22, "b" : 2 }
Случай 2: изменения размера поля и поля перерисовываются
> db.testcol.find()
> db.testcol.save({a:1,c:"foo",b:2,d:4})
> db.testcol.find()
{ "_id" : ObjectId("4d5efdceec5855af36834f5e"), "a" : 1, "c" : "foo", "b" : 2, "d" : 4 }
> db.testcol.update({a:1},{$set:{c:"foobar"}})
> db.testcol.find()
{ "_id" : ObjectId("4d5efdceec5855af36834f5e"), "a" : 1, "b" : 2, "c" : "foobar", "d" : 4 }
Есть ли конкретная причина, по которой вы не хотите, чтобы поля были переупорядочены? Выше было использование 1.8.0_rc0 на OS X