我正在使用MongoDB开发一个项目。到目前为止,我已设法将文档上传到数据库。记录看起来像
doc1 = {'customer_id': 1,
'order': "[{'item': 123, 'unit_price': 2.0}, \
{'item': 124, 'unit_price': 2.5}]"}
doc2 = {'customer_id': 2,
'order': "[{'item': 123, 'unit_price': 2.0}, \
{'item': 126, 'unit_price': 1.5}]"}
collection.insert(doc1)
collection.insert(doc2)
我想从该系列中找到不同的物品。我到目前为止的尝试
db.collection.distinct("order.item")
预期产出:
[123,124,126]
这不是很有效,因为order
是一个数组。我正在寻找一些方法来unnest
数组来获得不同的项目编号。最后,我想得到这些不同项目的计数。谢谢你的帮助!
答案 0 :(得分:0)
MongoDB确实为对象数组中的嵌套项返回distinct:
在您的情况下,db.collection.distinct("order.item")
应该从订单集合中返回不同项目的数组