### Description
on upgrade to 5.1.2, db_mongodb broke
### Troubleshooting i create a [PR](https://github.com/kamailio/kamailio/pull/1477) to print out any mongo query error
then i saw the debug messages below
#### Reproduction
install 5.1.2, use mongo as db for sip_trace module
#### Debugging Data
``` DEBUG: db_mongodb [mongodb_connection.c:55]: db_mongodb_new_connection(): connection open to: mongodb://user:pass@mongo1.abc.com:17017/collection DEBUG: db_mongodb [mongodb_dbase.c:904]: db_mongodb_query(): query to collection [version] DEBUG: db_mongodb [mongodb_dbase.c:938]: db_mongodb_query(): query filter: { "table_name" : "sip_trace" } DEBUG: db_mongodb [mongodb_dbase.c:966]: db_mongodb_query(): columns filter: { "projection" : { "table_version" : 1 } } DEBUG: db_mongodb [mongodb_dbase.c:782]: db_mongodb_store_result(): An error occurred: Unsupported projection option: projection: { table_version: 1 } ERROR: <core> [db.c:450]: db_check_table_version(): invalid version 0 for table sip_trace found, expected 4 (check table structure and table "version") ERROR: siptrace [siptrace.c:435]: child_init(): error during table version check ERROR: <core> [core/sr_module.c:942]: init_mod_child(): error while initializing module siptrace (/usr/lib64/kamailio/modules/siptrace.so) (idx: 39 rank: -2 desc: [Http Async Worker]) ```
#### Log Messages
#### SIP Traffic
### Possible Solutions
change the way mongo builds the query
### Additional Information
* **Kamailio Version** - output of `kamailio -v`
``` version: kamailio 5.1.2 (x86_64/linux) flags: STATS: Off, USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST, HAVE_RESOLV_RES ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB poll method support: poll, epoll_lt, epoll_et, sigio_rt, select. id: unknown compiled on 06:43:15 Mar 9 2018 with gcc 4.8.2
```
* **Operating System**:
<!--
-->
``` Ubuntu 14.04.1 LTS \n \l
Linux hostname 3.13.0-53-generic #89-Ubuntu SMP Wed May 20 10:34:39 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
```
What version of MongoDB server do you run?
The projection was added because of issues with newer versions, but seemed to be supported by older versions as well: https://lists.kamailio.org/pipermail/sr-users/2018-March/100518.html
mongo-c-driver-1.4.2
mongos version v3.4.2 git version: 3f76e40c105fc223b3e5aac3e20dcd026b83b38b OpenSSL version: OpenSSL 1.0.1f 6 Jan 2014 allocator: tcmalloc modules: none build environment: distmod: ubuntu1404 distarch: x86_64 target_arch: x86_64
It could be that mongo-c-driver-1.4.2 doesn't support it. I might have to had some defines on mongo-c version to make it work with such older versions.
Otherwise, the mongodb API find command has projection field for the scope of specifying the fields to be returned:
* https://docs.mongodb.com/manual/reference/command/find/
you are correct it is because of these lines
``` #if MONGOC_CHECK_VERSION(1, 5, 0) mgcon->cursor = mongoc_collection_find_with_opts (mgcon->collection, seldoc, mgcon->colsdoc, NULL); #else mgcon->cursor = mongoc_collection_find (mgcon->collection, MONGOC_QUERY_NONE, 0, 0, 0, seldoc, mgcon->colsdoc, NULL); #endif
```
i tried installing 1.5, it worked but it does not work for 1.7 either
I pushed a commit, referenced above. Can you try with it?
Closed #1479.
Closing, if still an issue, reopen.
hi daniel, looks like this was not part of 5.1.3?
It should, afaik. What do you get wrong?
sorry false alarm, i was playing with bionic and some deb packages were in conflict so far so good