2014-01-20 49 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

您應該仍然可以在新的C驅動程序中使用'$ orderby'。從github倉庫中的[示例](https://github.com/mongodb/mongo-c-driver/blob/master/examples/example-gridfs.c#L67),等同於'bson_append_start_object()'看起來是:'bson_append_document_begin(&query,「$ orderby」,-1,&child);' – Stennie

回答

2

您仍然可以在新的C MongooDB驅動程序中使用$orderby

而不是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 –

相關問題