MongoDB выравнивает встроенный документ из операции find () - PullRequest
0 голосов
/ 17 апреля 2020

Я видел несколько постов, касающихся этого, но ни один, кажется, не достиг того, что я ищу. У меня есть коллекция, в которую я запрашиваю и получаю документы, которые содержат данные в документе уровня root, а затем данные во встроенном документе; Я хочу выборочно получать доступ и возвращать только несколько полей как уровня root, так и встроенного, но я хочу, чтобы все это было в документе уровня root. Я использую mongoengine и pymon go.

Например, см. Приведенный ниже код:

return self.test_collection.find({'Date': {'$gte': start_date}, 'Date': {'$lte': end_date},
                                                    'customer': {'$in': customers}},
                                                   {'Date': 1, 'Time': 1, 'ID': 1,
                                                    'customer': 1, 'style': 1, 'price': 1, 'qty': 1,
                                                    'product.code': 1, 'product.vendor': 1})

В настоящее время приведенное выше возвращает значение {date, time, id, customer, style, price, qty, product {code, vendor}}, где я ищу {date, time, id, customer, style, price, qty, code, vendor} Это большая коллекция, к которой необходимо обратиться и я действительно не хочу извлекать нужные значения из каждого документа. Есть идеи?

1 Ответ

0 голосов
/ 17 апреля 2020

Я не уверен, но, кажется, вы можете использовать Aggregat ($ match And $ project)

В проекте использовать $ filter

...