首页 > 解决方案 > 如何在 MongoDB 中使用 c 中的一个键进行查询

问题描述

我正在尝试通过我的 .c 程序在 MongoDB 中搜索键的值。本质上在我的一个文档中的集合中:我有键:值,我希望能够通过传入键来返回所述值。我见过

 query = bson_new ();
 BSON_APPEND_UTF8 (query, "hello", "world");

 cursor = mongoc_collection_find_with_opts( collection, query, NULL, NULL);

我希望能够仅使用 hello 进行搜索并返回 world。

标签: cmongodb

解决方案


在 MongoDB 中查询一个值,只有一个键和一对(例如键:值)。可以使用正则表达式。

bson_t *query;
bson_append_regex(query, key, -1/* length of key*/, ".", NULL);
cursor = mongoc_collection_find_with_opts(collection, query, NULL, NULL);

字符串“。” 在正则表达式中表示“任何字符串”,因此如果您需要在另一个键中查找 json 值,例如:

{ key:
      {
       second_key:value
       }
 } 

将正则表达式更改为“second_key”。将找到所需的值。
注意 这将返回可能位于其中的任何其他值,与 mongoc_cursor_t * 配对,您可以选择您正在寻找的所需值。


推荐阅读