本文整理汇总了C++中bson_append_start_object函数的典型用法代码示例。如果您正苦于以下问题:C++ bson_append_start_object函数的具体用法?C++ bson_append_start_object怎么用?C++ bson_append_start_object使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了bson_append_start_object函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: make_large
static void make_large( bson *out, int i ) {
int num;
char numstr[4];
bson_init( out );
bson_append_new_oid( out, "_id" );
bson_append_int( out, "x", i );
bson_append_string( out, "base_url", "http://www.example.com/test-me" );
bson_append_int( out, "total_word_count", 6743 );
bson_append_int( out, "access_time", 999 ); /*TODO use date*/
bson_append_start_object( out, "meta_tags" );
bson_append_string( out, "description", "i am a long description string" );
bson_append_string( out, "author", "Holly Man" );
bson_append_string( out, "dynamically_created_meta_tag", "who know\n what" );
bson_append_finish_object( out );
bson_append_start_object( out, "page_structure" );
bson_append_int( out, "counted_tags", 3450 );
bson_append_int( out, "no_of_js_attached", 10 );
bson_append_int( out, "no_of_images", 6 );
bson_append_finish_object( out );
bson_append_start_array( out, "harvested_words" );
for ( num=0; num < 14*20; num++ ) {
bson_numstr( numstr, num );
bson_append_string( out, numstr, words[num%14] );
}
bson_append_finish_object( out );
bson_finish( out );
}
开发者ID:Elastica,项目名称:mongo-c-driver-legacy,代码行数:33,代码来源:benchmark_test.c
示例2: test_example_wikipedia_bson
void test_example_wikipedia_bson(size_t iterations) {
bcon_error_t ret;
size_t i;
bson b[1];
for (i = 0; i < iterations; i++) {
bson_init( b );
bson_append_string( b, "firstName", "John" );
bson_append_string( b, "lastName" , "Smith" );
bson_append_int( b, "age" , 25);
bson_append_start_object( b, "address" );
bson_append_string( b, "streetAddress", "21 2nd Street" );
bson_append_string( b, "city" , "New York" );
bson_append_string( b, "state" , "NY" );
bson_append_string( b, "postalCode" , "10021" );
bson_append_finish_object( b );
bson_append_start_array( b, "phoneNumber" );
bson_append_start_object( b, "0" );
bson_append_string( b, "type" , "home" );
bson_append_string( b, "number", "212 555-1234" );
bson_append_finish_object( b );
bson_append_start_object( b, "1" );
bson_append_string( b, "type" , "fax" );
bson_append_string( b, "number", "646 555-4567" );
bson_append_finish_object( b );
bson_append_finish_array( b );
ret = bson_finish( b );
bson_destroy( b );
}
assert(ret == BSON_OK);
}
开发者ID:hsleep,项目名称:mongo-c-driver,代码行数:30,代码来源:bcon_test.c
示例3: mongo_bson_buffer_append_complex
static int mongo_bson_buffer_append_complex(struct bson_buffer* b, const char* name, double r, double i) {
bson* _b = (bson*) b;
return (bson_append_start_object(_b, name) == BSON_OK) &&
(bson_append_double(_b, "r", r) == BSON_OK) &&
(bson_append_double(_b, "i", i) == BSON_OK) &&
(bson_append_finish_object(_b) == BSON_OK);
}
开发者ID:nosarcasm,项目名称:philoexplorer,代码行数:7,代码来源:api_bson.c
示例4: find_range
static void find_range( const char *ns ) {
int i;
bson bb;
mongo_cursor *cursor;
for ( i=0; i < PER_TRIAL; i++ ) {
int j=0;
bson_init( &bb );
bson_append_start_object( &bb, "x" );
bson_append_int( &bb, "$gt", PER_TRIAL/2 );
bson_append_int( &bb, "$lt", PER_TRIAL/2 + BATCH_SIZE );
bson_append_finish_object( &bb );
bson_finish( &bb );
cursor = mongo_find( conn, ns, &bb, NULL, 0,0,0 );
ASSERT( cursor );
while( mongo_cursor_next( cursor ) == MONGO_OK ) {
j++;
}
ASSERT( j == BATCH_SIZE-1 );
mongo_cursor_destroy( cursor );
bson_destroy( &bb );
}
}
开发者ID:Elastica,项目名称:mongo-c-driver-legacy,代码行数:27,代码来源:benchmark_test.c
示例5: LOGD
/*
* 实现抽象接口:
*/
int NotEqualDecorator::custom_result_set_query(bson* query)
{
int size = this->fitler_conditions.size();
LOGD("[GWJ] %s: filter_size[%d]", __FUNCTION__, size);
if(size > 0)
{
const char* column_name = this->fitler_conditions[0].table_column;
if(column_name == NULL)
{
LOGD("[GWJ] %s: end. Error filter column name!!", __FUNCTION__);
return -1;
}
LOGD("[GWJ] %s: start. column[%s], size[%d]", __FUNCTION__, column_name, size);
bson_append_start_object(query, column_name);
bson_append_string(query, "$ne", this->fitler_conditions[0].value);
LOGD("[GWJ] %s: [%s] not equal[%s]",
__FUNCTION__, column_name, this->fitler_conditions[0].value);
bson_append_finish_object(query);
}
else if(size == 0)
{
LOGD("[GWJ] %s: BiggerThanDecorator no filter Error!", __FUNCTION__);
return -1;
}
LOGD("[GWJ] %s: BiggerThanDecorator end", __FUNCTION__);
return 0;
}
开发者ID:zhengxiexie,项目名称:m,代码行数:37,代码来源:not_equal_decorator.cpp
示例6: test_index_helper
void test_index_helper( mongo *conn ) {
int ret;
bson b, out;
bson_iterator it;
bson_init( &b );
bson_append_int( &b, "foo", -1 );
bson_finish( &b );
mongo_create_index( conn, "test.bar", &b, NULL, MONGO_INDEX_SPARSE | MONGO_INDEX_UNIQUE, &out );
bson_destroy( &b );
bson_destroy( &out );
bson_init( &b );
bson_append_start_object( &b, "key" );
bson_append_int( &b, "foo", -1 );
bson_append_finish_object( &b );
bson_finish( &b );
ret = mongo_find_one( conn, "test.system.indexes", &b, NULL, &out );
ASSERT( ret == MONGO_OK );
bson_print( &out );
bson_iterator_init( &it, &out );
ASSERT( bson_find( &it, &out, "unique" ) );
ASSERT( bson_find( &it, &out, "sparse" ) );
bson_destroy( &b );
bson_destroy( &out );
}
开发者ID:waitman,项目名称:mongo-c-driver-tests,代码行数:35,代码来源:helpers_test.c
示例7: mongo_cmd_add_user
MONGO_EXPORT int mongo_cmd_add_user( mongo *conn, const char *db, const char *user, const char *pass ) {
bson user_obj;
bson pass_obj;
char hex_digest[33];
char *ns = bson_malloc( strlen( db ) + strlen( ".system.users" ) + 1 );
int res;
strcpy( ns, db );
strcpy( ns+strlen( db ), ".system.users" );
mongo_pass_digest( user, pass, hex_digest );
bson_init( &user_obj );
bson_append_string( &user_obj, "user", user );
bson_finish( &user_obj );
bson_init( &pass_obj );
bson_append_start_object( &pass_obj, "$set" );
bson_append_string( &pass_obj, "pwd", hex_digest );
bson_append_finish_object( &pass_obj );
bson_finish( &pass_obj );
res = mongo_update( conn, ns, &user_obj, &pass_obj, MONGO_UPDATE_UPSERT );
bson_free( ns );
bson_destroy( &user_obj );
bson_destroy( &pass_obj );
return res;
}
开发者ID:chitr,项目名称:mongo-c-driver,代码行数:30,代码来源:mongo.c
示例8: update_filesize
int update_filesize(struct inode * e, off_t newsize) {
bson cond, doc;
mongo * conn = get_conn();
int res;
if(newsize < e->size)
return 0;
e->size = newsize;
bson_init(&cond);
bson_append_oid(&cond, "_id", &e->oid);
bson_finish(&cond);
bson_init(&doc);
bson_append_start_object(&doc, "$set");
bson_append_long(&doc, "size", newsize);
bson_append_finish_object(&doc);
bson_finish(&doc);
res = mongo_update(conn, inodes_name, &cond, &doc, 0, NULL);
bson_destroy(&cond);
bson_destroy(&doc);
if(res != 0)
return -EIO;
return 0;
}
开发者ID:scotthernandez,项目名称:mongo-fuse,代码行数:28,代码来源:read-write.c
示例9: vs_mongo_taggroup_add_new
/**
* \brief This function tries to add new tag group to MongoDB
*/
int vs_mongo_taggroup_add_new(struct VS_CTX *vs_ctx,
struct VSNode *node,
struct VSTagGroup *tg)
{
bson bson_tg;
int ret;
bson_init(&bson_tg);
bson_oid_gen(&tg->oid);
bson_append_oid(&bson_tg, "_id", &tg->oid);
bson_append_int(&bson_tg, "node_id", node->id);
bson_append_int(&bson_tg, "taggroup_id", tg->id);
bson_append_int(&bson_tg, "custom_type", tg->custom_type);
bson_append_int(&bson_tg, "current_version", tg->version);
bson_append_start_object(&bson_tg, "versions");
vs_mongo_taggroup_save_version(tg, &bson_tg, UINT32_MAX);
bson_append_finish_object(&bson_tg);
bson_finish(&bson_tg);
ret = mongo_insert(vs_ctx->mongo_conn, vs_ctx->mongo_tg_ns, &bson_tg, 0);
bson_destroy(&bson_tg);
if(ret != MONGO_OK) {
v_print_log(VRS_PRINT_ERROR,
"Unable to write tag group %d of node %d to MongoDB: %s, error: %s\n",
tg->id, node->id, vs_ctx->mongo_tg_ns,
mongo_get_server_err_string(vs_ctx->mongo_conn));
return 0;
}
return 1;
}
开发者ID:donno,项目名称:verse,代码行数:38,代码来源:vs_mongo_taggroup.c
示例10: test_tailable
int test_tailable( mongo *conn ) {
mongo_cursor *cursor;
bson b;
int count;
remove_sample_data( conn );
create_capped_collection( conn );
insert_sample_data( conn, 10000 );
bson_init( &b );
bson_append_start_object( &b, "$query" );
bson_append_finish_object( &b );
bson_append_start_object( &b, "$sort" );
bson_append_int( &b, "$natural", -1 );
bson_append_finish_object( &b );
bson_finish( &b );
cursor = mongo_find( conn, "test.cursors", &b, bson_shared_empty( ), 0, 0, MONGO_TAILABLE );
bson_destroy( &b );
count = 0;
while( mongo_cursor_next( cursor ) == MONGO_OK )
count++;
ASSERT( count == 10000 );
ASSERT( mongo_cursor_next( cursor ) == MONGO_ERROR );
ASSERT( cursor->err == MONGO_CURSOR_PENDING );
insert_sample_data( conn, 10 );
count = 0;
while( mongo_cursor_next( cursor ) == MONGO_OK ) {
count++;
}
ASSERT( count == 10 );
ASSERT( mongo_cursor_next( cursor ) == MONGO_ERROR );
ASSERT( cursor->err == MONGO_CURSOR_PENDING );
mongo_cursor_destroy( cursor );
remove_sample_data( conn );
return 0;
}
开发者ID:waykozhong,项目名称:mongo-c-driver,代码行数:46,代码来源:cursors_test.c
示例11: encodeObject
bool encodeObject(bson *bb, const char *name, v8::Local<v8::Value> element,
bool doJson)
{
v8::Local<v8::Object> object = element->ToObject();
if (doJson)
{
v8::Local<v8::Value> jsonFun = object->Get(
v8::String::NewFromUtf8(isolate, "toJSON",
v8::String::kNormalString, 6));
if (!IsEmpty(jsonFun) && jsonFun->IsFunction())
{
v8::Local<v8::Value> p = v8::String::NewFromUtf8(isolate, name ? name : "");
v8::Local<v8::Value> element1 = v8::Local<v8::Function>::Cast(
jsonFun)->Call(object, 1, &p);
if (name)
{
encodeValue(bb, name, element1, false);
return true;
}
if (!element1->IsObject())
return false;
object = element1->ToObject();
}
}
if (!name
&& (object->IsDate() || object->IsArray() || object->IsRegExp()
|| Buffer_base::getInstance(object)))
return false;
if (name)
bson_append_start_object(bb, name);
v8::Local<v8::Array> properties = object->GetPropertyNames();
for (int i = 0; i < (int) properties->Length(); i++)
{
v8::Local<v8::Value> prop_name = properties->Get(i);
v8::Local<v8::Value> prop_val = object->Get(prop_name);
v8::String::Utf8Value n(prop_name);
const char *pname = ToCString(n);
encodeValue(bb, pname, prop_val);
}
if (name)
bson_append_finish_object(bb);
return true;
}
开发者ID:AsamQi,项目名称:fibjs,代码行数:56,代码来源:encoding_bson.cpp
示例12: main
int main() {
/*
* We assume objects in the form of {_id:<any_id>, list:[{a:<int>,b:<int>}, ...]}
*/
mongo conn[1];
mongo_init(conn);
if(MONGO_OK != mongo_client(conn, "127.0.0.1", 27017))
return 1;
bson b[1], b_result[1];
/*create the aggregation command in bson*/
bson_init(b);
bson_append_string(b, "aggregate", "agg");
bson_append_start_array(b, "pipeline");
bson_append_start_object(b,"0");
bson_append_string(b, "$unwind", "$list");
bson_append_finish_object(b);
bson_append_start_object(b,"1");
bson_append_start_object(b,"$group");
bson_append_string(b,"_id", "$list");
bson_append_start_object(b, "distinct_count");
bson_append_int(b, "$sum", 1);
bson_append_finish_object(b);
bson_append_finish_object(b);
bson_append_finish_object(b);
bson_append_finish_array(b);
bson_finish(b);
/*So you can see your command*/
bson_print(b);
/*run the command*/
mongo_run_command(conn, "test", b, b_result);
/*command results*/
bson_print(b_result);
bson_destroy(b_result);
bson_destroy(b);
mongo_destroy(conn);
return 0;
}
开发者ID:10gen,项目名称:mongo-c-driver-legacy,代码行数:41,代码来源:aggregate_bson.c
示例13: jbson_object_start
static void
jbson_object_start(void *state)
{
json_to_bson_state *_state = (json_to_bson_state *) state;
if (_state->lex->lex_level == 0)
return;
if (_state->fname == NULL)
elog(ERROR, "unsupported json structure");
bson_append_start_object(_state->bson, _state->fname);
}
开发者ID:RepoCorp,项目名称:mongres,代码行数:13,代码来源:bjson.c
示例14: bson_from_json_type
void bson_from_json_type(bson *b, yajl_val value, const char* key)
{
if( YAJL_IS_STRING( value ) )
{
char* string = YAJL_GET_STRING( value );
bson_append_string( b, key, string );
}
else if( YAJL_IS_NUMBER( value ) )
{
char* string = value->u.number.r;
size_t len = strlen( string );
// Hack to detect a double, since 'flags' is always set to double.
if( memchr( string, '.', len ) ||
memchr( string, 'e', len ) ||
memchr( string, 'E', len ) )
{
double number = YAJL_GET_DOUBLE( value );
bson_append_double( b, key, number );
}
else
{
uint64_t number = YAJL_GET_INTEGER( value );
if( number <= INT_MIN && number <= INT_MAX)
bson_append_int( b, key, (int)number );
else
bson_append_long( b, key, number);
}
}
else if ( YAJL_IS_FALSE( value ) )
{
bson_append_bool( b, key, 0 );
}
else if ( YAJL_IS_TRUE( value ) )
{
bson_append_bool( b, key, 1 );
}
else if ( YAJL_IS_ARRAY( value ) )
{
bson_append_start_array( b, key );
bson_from_json_array( b, value );
bson_append_finish_array( b );
}
else if ( YAJL_IS_OBJECT( value ) )
{
bson_append_start_object( b, key );
bson_from_json_object( b, value );
bson_append_finish_object( b );
}
}
开发者ID:sharpglasses,项目名称:bson_db,代码行数:51,代码来源:json_bson_utils.c
示例15: main
int main(int argc, char *argv[])
{
const char * test_server = (argc > 1 ? argv[1] : TEST_SERVER);
bson_iterator it[1], it2[1];
bson b[1];
bson sub[1];
bson copy[1];
bson_type type;
bson_init( b );
bson_append_string( b, "foo", "hello" );
{
bson_append_start_object( b, "o" );
bson_append_string( b, "bar", "goodbye" );
bson_append_finish_object( b );
}
bson_iterator_init( it, b );
bson_iterator_next( it );
type = bson_iterator_next( it );
ASSERT( BSON_OBJECT == type );
bson_iterator_subobject_init( it, sub, 0 );
ASSERT( sub->finished == 1 );
bson_iterator_init( it2, sub );
type = bson_iterator_next( it2 );
ASSERT( BSON_STRING == type );
type = bson_iterator_next( it2 );
ASSERT( BSON_EOO == type );
bson_copy( copy, sub );
ASSERT( 1 == copy->finished );
ASSERT( 0 == copy->stackPos );
ASSERT( 0 == copy->err );
bson_destroy( copy );
bson_destroy( b );
return 0;
}
开发者ID:cmjonze,项目名称:rpm5_tarballs,代码行数:47,代码来源:bson_subobject.c
示例16: commit_inode
int commit_inode(struct inode * e) {
bson cond, doc;
mongo * conn = get_conn();
char istr[4];
struct dirent * cde = e->dirents;
int res;
bson_init(&doc);
bson_append_start_object(&doc, "$set");
bson_append_start_array(&doc, "dirents");
res = 0;
while(cde) {
bson_numstr(istr, res++);
bson_append_string(&doc, istr, cde->path);
cde = cde->next;
}
bson_append_finish_array(&doc);
bson_append_int(&doc, "mode", e->mode);
bson_append_long(&doc, "owner", e->owner);
bson_append_long(&doc, "group", e->group);
bson_append_long(&doc, "size", e->size);
bson_append_time_t(&doc, "created", e->created);
bson_append_time_t(&doc, "modified", e->modified);
if(e->data && e->datalen > 0)
bson_append_string_n(&doc, "data", e->data, e->datalen);
bson_append_finish_object(&doc);
bson_finish(&doc);
bson_init(&cond);
bson_append_oid(&cond, "_id", &e->oid);
bson_finish(&cond);
res = mongo_update(conn, inodes_name, &cond, &doc,
MONGO_UPDATE_UPSERT, NULL);
bson_destroy(&cond);
bson_destroy(&doc);
if(res != MONGO_OK) {
fprintf(stderr, "Error committing inode %s\n",
mongo_get_server_err_string(conn));
return -EIO;
}
return 0;
}
开发者ID:scotthernandez,项目名称:mongo-fuse,代码行数:44,代码来源:inodes.c
示例17: tutorial_update
static void tutorial_update( mongo *conn ) {
bson cond[1], op[1];
bson_init( cond );
bson_append_string( cond, "name", "Joe");
bson_append_int( cond, "age", 33);
bson_finish( cond );
bson_init( op );
bson_append_start_object( op, "$inc" );
bson_append_int( op, "visits", 1 );
bson_append_finish_object( op );
bson_finish( op );
mongo_update( conn, "tutorial.persons", cond, op, MONGO_UPDATE_BASIC, 0 );
bson_destroy( cond );
bson_destroy( op );
}
开发者ID:madisonmay,项目名称:SoftwareSystems,代码行数:19,代码来源:tutorial.c
示例18: dlr_mongodb_update
/* Update DLR */
static void dlr_mongodb_update(const Octstr *smsc, const Octstr *ts, const Octstr *dst, int status)
{
DBPoolConn *pconn;
bson cond, op;
bson_buffer cond_buf, op_buf;
mongo_connection *conn = NULL;
pconn = dbpool_conn_consume(pool);
if (pconn == NULL) {
return;
}
conn = (mongo_connection*)pconn->conn;
bson_buffer_init(&cond_buf);
bson_append_string(&cond_buf, octstr_get_cstr(fields->field_smsc), octstr_get_cstr(smsc));
bson_append_string(&cond_buf, octstr_get_cstr(fields->field_ts), octstr_get_cstr(ts));
if (dst) {
bson_append_string(&cond_buf, octstr_get_cstr(fields->field_dst), octstr_get_cstr(dst));
}
bson_from_buffer(&cond, &cond_buf);
bson_buffer_init(&op_buf);
{
bson_buffer *sub = bson_append_start_object(&op_buf, "$set");
bson_append_int(sub, octstr_get_cstr(fields->field_status), status);
bson_append_finish_object(sub);
}
bson_from_buffer(&op, &op_buf);
MONGO_TRY {
mongo_update(conn, mongodb_namespace, &cond, &op, 0);
} MONGO_CATCH {
mongodb_error("dlr_mongodb_update", conn->exception.type);
}
dbpool_conn_produce(pconn);
bson_destroy(&cond);
bson_destroy(&op);
}
开发者ID:alanmcna,项目名称:kannel-mongodb,代码行数:42,代码来源:dlr_mongodb.c
示例19: test_bson_deep_nesting
int test_bson_deep_nesting( void ) {
int i;
bson b[1];
bson_init( b );
for ( i = 0; i < 128; ++i )
{
bson_append_start_object( b, "sub" );
bson_append_string( b, "hello", "hi" );
}
for ( i = 0; i < 128; ++i )
{
bson_append_finish_object( b );
}
bson_finish( b );
bson_destroy( b );
return 0;
}
开发者ID:KevinHenrick,项目名称:mongo-c-driver,代码行数:21,代码来源:bson_test.c
示例20: do_trunc
int do_trunc(struct inode * e, off_t off) {
bson cond;
int res;
mongo * conn = get_conn();
if(off > e->size) {
e->size = off;
return 0;
}
pthread_mutex_lock(&e->wr_lock);
if(e->wr_extent) {
if(off < 0 && (res = serialize_extent(e, e->wr_extent)) != 0)
return res;
e->wr_extent->nnodes = 0;
}
e->wr_age = time(NULL);
pthread_mutex_unlock(&e->wr_lock);
bson_init(&cond);
bson_append_oid(&cond, "inode", &e->oid);
if(off > 0) {
bson_append_start_object(&cond, "start");
bson_append_long(&cond, "$gte", off);
bson_append_finish_object(&cond);
}
bson_finish(&cond);
res = mongo_remove(conn, extents_name, &cond, NULL);
bson_destroy(&cond);
if(res != 0) {
fprintf(stderr, "Error removing extents in do_truncate\n");
return -EIO;
}
e->size = off;
return 0;
}
开发者ID:scotthernandez,项目名称:mongo-fuse,代码行数:39,代码来源:read-write.c
注:本文中的bson_append_start_object函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论