首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于mongo-c-driver的BCON :通过_id查找

用于mongo-c-driver的BCON :通过_id查找
EN

Stack Overflow用户
提问于 2015-01-05 16:58:19
回答 2查看 761关注 0票数 3

我已经设法用C驱动程序做了更好的事情,但还是停留在这一点上:

如何按已知Id进行搜索?在许多事情中,这是我尝试过的似乎最合乎逻辑的:

代码语言:javascript
复制
query = BCON_NEW (
       "some_field", BCON_INT32(4),
       "_id", "{", 
           "$oid", "5414096132e0353007000017",
        "}"
    );

如果我不包含_id字段,查询就可以正常工作。如果使用_id,则不返回任何内容,也不返回错误。当然,具有该_id的记录存在于db中。

在同一主题中,我很难形成一个用于$in查询的Ids数组。希望这也能对此有所帮助。

代码语言:javascript
复制
bson_t shiftIds;
BSON_APPEND_UTF8 (&shiftIds, "$oid", key); //Key is the shiftId string value, this goes in loop
query = BCON_NEW (
          "some_field", BCON_INT32(4),
          "shiftId", "{", 
            "$in", BCON_ARRAY(&shiftIds),
          "}"
     );

在这一部分中,在BSON_APEND_UTF8方法中追加$oid会出现问题。程序在到达那里时终止。

如有任何帮助,我们不胜感激!

EN

回答 2

Stack Overflow用户

发布于 2015-07-04 13:01:00

如果你想通过_id查找,也许你可以这样做:

代码语言:javascript
复制
bson_oid_t oid;
bson_oid_init_from_string (&oid, "5414096132e0353007000017");
query = BCON_NEW ("_id", BCON_OID(&oid));
票数 3
EN

Stack Overflow用户

发布于 2017-06-29 09:50:19

第一个问题的替代解决方案:

代码语言:javascript
复制
bson_init_from_json(query, "{\"_id\":{\"$oid\":\"5414096132e0353007000017\"}}", -1, NULL);

第二个问题的解决方案:mongo c driver: how to query documents with "_id" in a list?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27776132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档