私はこのようなデータを挿入しました
{ "userid" : "manaf", "DataValue" : { "$type" : "00", "$binary" : "sampleBinaryData" }, "timestamp" : 1460718961132, "_id" : { "$oid" : " 5710cd7194e5f57831eea91e"}、"__v":0}
提供されたデータの b/w タイムスタンプ値を取得する必要があります。
私はすでにmongoDbクライアントコンソールで以下のコマンドを使用してこれを行っています。
db.sampleCollection.find({"timestamp": {"$gte":1460703944149, "$lt":1460703944683 },"userid": "manaf"})
しかし、私のCプログラムではこのように使用できません。
これは私のクライアントプログラムです
#include <bson.h>
#include <mongoc.h>
#include <stdio.h>
int
main (int argc,
char *argv[])
{
mongoc_client_t *client;
mongoc_collection_t *collection;
mongoc_cursor_t *cursor;
const bson_t *doc;
bson_t *query;
char *str;
mongoc_init ();
client = mongoc_client_new ("mongodb://localhost:27017/");
collection = mongoc_client_get_collection (client, "sampledb", "sampleCollection");
query = bson_new ();
BSON_APPEND_UTF8 (query, "timestamp": {"$gte":1460703944149, "$lt":1460703944683 },"userid": "manaf");
cursor = mongoc_collection_find (collection, MONGOC_QUERY_NONE, 0, 0, 0, query, NULL, NULL);
printf("Started\n");
while (mongoc_cursor_next (cursor, &doc)) {
str = bson_as_json (doc, NULL);
printf ("%s\n", str);
bson_free (str);
}
bson_destroy (query);
mongoc_cursor_destroy (cursor);
mongoc_collection_destroy (collection);
mongoc_client_destroy (client);
mongoc_cleanup ();
return 0;
}
私はこのようなエラーが発生しました
error: macro "BSON_APPEND_UTF8" passed 4 arguments, but takes just 3
BSON_APPEND_UTF8 (query, "timestamp": {"$gte":1460703944149, "$lt":1460703944683 },"userid": "manaf");
このプログラムの実際の問題は何ですか?