我在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}]" }
我正在尝试访问Purchase数组中的字段。
这是交易记录中的一张发票。
{ "_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}}})
由于我正在查询在事务集合中看到的数据,因此我希望上述查询返回数据。该代码运行,但不返回数据。