コレクションの順序付きカーソルをプログラムで取得するために、クエリを作成しようとしています。mongodb の Web サイトに 1 つの例が示されていますが、実際には機能していません。
私たちがやろうとしているのは、timestamp.secondsとtimestamp.nanosecondsという名前の 2 つのフィールドでコレクションを並べ替えることです。私たちのコレクションはこれらのフィールドによってインデックス化されており、mongo シェルで以下のコードを使用してデータを並べ替えることができます。
db.Data.find().sort({"timestamp.seconds": 1, "timestamp.nanoseconds": 1})
C ドライバーを使用して同じクエリを作成するにはどうすればよいでしょうか。以下のコードを試してみましたが、期待どおりに動作しません。
mongoc_cursor_t *cursor;
bson_t *query;
query = BCON_NEW("$query", "{", "}", "$orderby", "{",
"timestamp.seconds: 1, timestamp.nanoseconds: 1", "}");
cursor = mongoc_collection_find (collection, MONGOC_QUERY_NONE, 0, 0, 0,
query, NULL, NULL);