2014-01-20 3 views
2

Я могу получить результаты моего запроса, но я не могу получить их в порядке возрастания (или убывания) в соответствии со значением моего поля «X» (int32). Не могли бы вы помочь мне?

Обратите внимание, что я использую последнюю версию MongoDB-C, и в старой версии я вполне мог использовать «$ orderby» для своих запросов, но в новой версии эта функция «bson_append_start_object()» не существует.

Вот структура часть моей коллекции:

by: [ 
     { 
     id: ObjectId("XX"), 
     type: NumberInt(1) 
     } 
    ], 
    timestamp: NumberInt() 

и часть моего кода:

bson_init(&array); 
    bson_append_oid(&array, "id", 2, &oid); 
    bson_append_int32(&array, "type", 4, 1); 
    bson_init(&query); 
    bson_append_document(&query, "by", 2, &array); 

Спасибо заранее.

С уважением.

+0

Я предлагаю вам показать некоторый код. – iandotkelly

+0

Я отредактировал свой пост –

+1

Вы все равно сможете использовать '$ orderby' в новом C-драйвере. Из одного из [примеров] (https://github.com/mongodb/mongo-c-driver/blob/master/examples/example-gridfs.c#L67) в github repo эквивалентно 'bson_append_start_object()' выглядит следующим образом: 'bson_append_document_begin (& query," $ orderby ", -1, & child);' – Stennie

ответ

2

Вы все еще можете использовать $orderby в новом драйвере C MongooDB.

Вместо bson_append_start_object() новый API использует bson_append_document_begin().

Пример использования из GridFS example in the github repo:

bson_init (&query); 
    bson_append_document_begin (&query, "$orderby", -1, &child); 
    bson_append_int32 (&child, "filename", -1, 1); 
    bson_append_document_end (&query, &child); 
    bson_append_document_begin (&query, "$query", -1, &child); 
    bson_append_document_end (&query, &child); 
+0

Спасибо, но теперь вы можете найти новый вопрос, связанный с этим сообщением здесь: http://stackoverflow.com/questions/21332895/complex-query-with-two-orderby –

 Смежные вопросы

  • Нет связанных вопросов^_^