Module: kamailio Branch: 5.1 Commit: cc92737d06359d1812ec7bed22e4c253ae7ba2e9 URL: https://github.com/kamailio/kamailio/commit/cc92737d06359d1812ec7bed22e4c253...
Author: Daniel-Constantin Mierla miconda@gmail.com Committer: Daniel-Constantin Mierla miconda@gmail.com Date: 2018-03-01T15:52:06+01:00
db_mongodb: create projection field to set the list of returned column
(cherry picked from commit d50498cf483cd22ac4e62af5aaa86fc27654f640)
---
Modified: src/modules/db_mongodb/mongodb_dbase.c
---
Diff: https://github.com/kamailio/kamailio/commit/cc92737d06359d1812ec7bed22e4c253... Patch: https://github.com/kamailio/kamailio/commit/cc92737d06359d1812ec7bed22e4c253...
---
diff --git a/src/modules/db_mongodb/mongodb_dbase.c b/src/modules/db_mongodb/mongodb_dbase.c index 57f11dc930..1e790b8b9d 100644 --- a/src/modules/db_mongodb/mongodb_dbase.c +++ b/src/modules/db_mongodb/mongodb_dbase.c @@ -825,6 +825,7 @@ int db_mongodb_query(const db1_con_t* _h, const db_key_t* _k, const db_op_t* _op km_mongodb_con_t *mgcon; mongoc_client_t *client; bson_t *seldoc = NULL; + bson_t bcols; char *cname; char b1; char *jstr; @@ -904,14 +905,23 @@ int db_mongodb_query(const db1_con_t* _h, const db_key_t* _k, const db_op_t* _op LM_ERR("cannot initialize columns bson document\n"); goto error; } + if(!bson_append_document_begin (mgcon->colsdoc, "projection", 10, + &bcols)) { + LM_ERR("failed to start projection of fields\n"); + goto error; + } for(i = 0; i < _nc; i++) { - if(!bson_append_int32(mgcon->colsdoc, _c[i]->s, _c[i]->len, 1)) + if(!bson_append_int32(&bcols, _c[i]->s, _c[i]->len, 1)) { LM_ERR("failed to append int to columns bson %.*s = %d [%d]\n", _c[i]->len, _c[i]->s, 1, i); goto error; } } + if(!bson_append_document_end (mgcon->colsdoc, &bcols)) { + LM_ERR("failed to end projection of fields\n"); + goto error; + } if(is_printable(L_DBG)) { jstr = bson_as_json (mgcon->colsdoc, NULL); LM_DBG("columns filter: %s\n", jstr);