> Excellent, note that this should count each attribute value as one result, > whether from the same document, or multiple documents.
Done. > Given your earlier answers about mailing list modelling, I should ask how > list-valued attributes are supported? Do just expand to a comma-separated > list of the underlying values (I'd expect yes)? Guess I forgot to include that patch the last time. But yes. for example, if a mailing list is formed like: { "name": "d...@test.com", "active": 1, "createdAt": ISODate("<some_date>"), "addresses": [ "ha...@dexo.tech", "vik...@postfix.org" ] } then: filter = { "name": "%s", "active": 1 } return_attribute = addresses for key "d...@test.com" will return: ha...@dexo.tech,vik...@postfix.org Regards Hamid Maadani June 24, 2022 11:32 AM, "Viktor Dukhovni" <postfix-us...@dukhovni.org> wrote: > On Thu, Jun 23, 2022 at 06:13:05PM +0000, Hamid Maadani wrote: > >> The code is updated. Now: >> - It accounts for the 'domain' parameter >> - It requires a JSON formatted 'filter' parameter (no more search_key) > > Good. > >> - It uses comma-separated 'result_attribute' to return fields off of query >> results. >> The result will be a comma-separated string if multiple results present. >> - It uses 'result_format' attribute to format the result > > I think this will be the most natural stratghtforward option for most users. > >> - It uses 'expansion_limit' attribute to control number of results being >> returned > > Excellent, note that this should count each attribute value as one > result, whether from the same document, or multiple documents. > >> - mongoc_client_pool_t has been converted to mongoc_client_t >> - Each dict has it's own mongoc_client_t, to account for different backend >> databases. > > Good. > >> - advanced projections are commented out for now, and not supported. > > Thanks. This can be and may need to be considered later. > >> I am still conflicted about the 'result_attribute' + 'result_format' >> combination. >> I understand what 'result_format' is used for. However, this can be done >> inside projections >> as well. I fail to see the advantage of the combo, since it will not "guide" >> users to return >> fields of the same "type". What are we solving for here? simplicity? >> backwards compatibility? > > Projections are a much more complex "programming language", that should > not required in the simplest use-cases where attribute values are used > as-is, or with minor static decorations. > > Given your earlier answers about mailing list modelling, I should ask > how list-valued attributes are supported? Do just expand to a > comma-separated list of the underlying values (I'd expect yes)? > > -- > Viktor;.