4

私はこのようなデータを挿入しました

{ "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");

このプログラムの実際の問題は何ですか?

4

3 に答える 3