Я не могу получить доступ к вложенному массиву документов в коллекции mongodb - PullRequest
0 голосов
/ 15 апреля 2019

У меня есть коллекция в MongoDB, которая содержит поле, представляющее собой массив документов. Мне нужно получить доступ к каждому из полей в документах, и я не смог заставить его работать.

У меня есть коллекция под названием транзакции. Вот пример данных в коллекции:

{ "_id" : ObjectId("5cb02d3c65a86045bc690d43"), "InvoiceNo" : 536366, "Customer_ID" : 17850, "Date" : 40513, "Planet" : "Abydos", "Purchase" : "[{'ItemNo': 22633, 'UnitPrice': 1.85, 'Description': u'BRAWNDO', 'Quantity': 6}, {'ItemNo': 22632, 'UnitPrice': 1.85, 'Description': u'HAND WARMER RED POLKA DOT', 'Quantity': 6}]" }

Я пытаюсь получить доступ к полям массива покупки.

Это один счет в коллекции транзакций.

{ "_id" : ObjectId("5cb02d3c65a86045bc690d43"), "InvoiceNo" : 536366, "Customer_ID" : 17850, "Date" : 40513, "Planet" : "Abydos", "Purchase" : "[{'ItemNo': 22633, 'UnitPrice': 1.85, 'Description': u'BRAWNDO', 'Quantity': 6}, {'ItemNo': 22632, 'UnitPrice': 1.85, 'Description': u'HAND WARMER RED POLKA DOT', 'Quantity': 6}]" }

Вот что я пробовал до сих пор:

db.transactions.find( {"Purchase":{"ItemNo":"22633"}})
db.transactions.find( {"Purchase":{"UnitPrice":1.85}})
db.transactions.find({'Purchase.Quantity':{$lt:37}})
db.transactions.find({'Purchase.UnitPrice':{$lte:3.82}})
db.transactions.find({'Purchase.UnitPrice':{$elemMatch:{$in:1.85}}})

Я ожидаю, что вышеупомянутые запросы будут возвращать данные, так как я запрашиваю данные, которые я вижу в коллекции транзакций. Код выполняется, но не возвращает данные.

...