我已经设法用 C 驱动程序做得更好,但坚持这个简单的点:
如何按已知 ID 进行搜索?在许多事情中,这是我尝试过的最合乎逻辑的事情:
query = BCON_NEW (
"some_field", BCON_INT32(4),
"_id", "{",
"$oid", "5414096132e0353007000017",
"}"
);
如果我不包含 _id 字段,查询工作正常。使用 _id,不返回任何内容,也没有错误。当然,在 db 中存在具有该 _id 的记录。
在同一主题上,我很难为 $in 查询形成一组 Id。希望这对那里也有帮助。
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 会出现问题。程序在到达那里时终止。
任何帮助表示赞赏!