MongoDB:使用' c-driver'找到$ gte为1的文档

时间:2016-05-08 16:14:58

标签: mongodb gcc bson mongo-c-driver

我正在尝试做一些非常简单的事情,但我显然做错了什么。任何帮助将不胜感激。

我知道文档的_id,我只是想验证它是available_uses$gte 1

简单文档样本:

{ 
"_id" : ObjectId("572f4d6f6d210e5c2d60cc41"), 
"invite_data" : "something useful here", 
"available_uses" : NumberInt(25), 
}

我尝试了以下BCON,但它不起作用。我能够编译没有任何错误,但是当我运行它时,应用程序会在query行设置后立即死亡,因此显然该结构中存在错误。没有错误,只有app退出。

query = bson_new ();
bson_oid_t oid;
bson_oid_init_from_string (&oid, invite_id);

query = BCON_NEW ("_id", BCON_OID(&oid),
    "{",
        "available_uses",
            "{",
                "$gte",  BCON_INT32 (1)
            "}",
    "}");   

// Find the document
cursor = mongoc_collection_find (collection, MONGOC_QUERY_NONE, 0, 0, 0, query, NULL, NULL);

1 个答案:

答案 0 :(得分:0)

太多{& }。再一次,在线文档指向错误的方向是一个令人遗憾的问题。

正确的代码是:

query = BCON_NEW ("_id", BCON_OID(&oid),
    "available_uses", 
        "{",
            "$gt", BCON_INT32 (1),
          "}");