首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mongodb c-api中的$exists查询

mongodb c-api中的$exists查询
EN

Stack Overflow用户
提问于 2013-06-04 18:17:24
回答 2查看 274关注 0票数 0

我正在尝试用C实现以下mongodb查询

db.test.find({"timestamp": {"$exists":true}});

我想应该是这样的

代码语言:javascript
复制
bson query, existspart;
mongo_cursor cursor;
int i;

bson_init(&existspart);
bson_append_string ( &existspart, "$exists", "false" );
bson_finish(&existspart);
bson_init(&query);
bson_append_bson ( &query, "timestamp", &existspart );
bson_finish(&query);    

mongo_cursor_init(&cursor, conn, "mydb.test");
mongo_cursor_set_query(&cursor, &query );
while( mongo_cursor_next( &cursor ) == MONGO_OK )
{
    // blabla
} 

但它不起作用。我做错了什么?

EN

回答 2

Stack Overflow用户

发布于 2013-07-24 14:37:45

替换

代码语言:javascript
复制
bson_append_string ( &existspart, "$exists", "false" );

使用

代码语言:javascript
复制
bson_append_bool ( &existspart, "$exists", 1 );

代码语言:javascript
复制
bson_append_bool ( &existspart, "$exists", 0 );

如果您不希望该字段存在

票数 1
EN

Stack Overflow用户

发布于 2017-04-02 05:53:49

我使用了稍微不同的语法:

代码语言:javascript
复制
bson_t* existspart = BCON_NEW("$exists", BCON_BOOL(true));
bson_t *query = bson_new();
BSON_APPEND_DOCUMENT(query, "timestamp", existspart);

mongoc_cursor_t* cursor = MongoInterface::Instance().Find("db_name", query);

const bson_t *doc;
while (mongoc_cursor_next (cursor, &doc))
{
  // Do stuff...
}

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

https://stackoverflow.com/questions/16915273

复制
相关文章

相似问题

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