gpt4 book ai didi

python - mongodb:查询列表中的值(而不是对象)

转载 作者:行者123 更新时间:2023-12-03 15:59:05 24 4
gpt4 key购买 nike

我有一个包含类似文档的数据库

{_id: 5,
fruit: 'apple',
vitamins: ['B1', 'B12', 'A1']
}
{_id: 7,
fruit: 'appricot',
vitamins: ['B6', 'D12', 'A1']
}

有没有办法查询所有包含以下内容的记录:维生素“A1”?

我正在寻找 mongo shell 查询和 pymongo 等效项。我知道我可以放置一个 for 循环来迭代记录并检查列表是否包含元素,但我更喜欢在有元素时进行查询。

由于它是一个列表而不是对象列表,所以似乎我无法使用 $elemMatch...

谢谢

最佳答案

您有几个选择:

选项1:如果你只想匹配一个元素,你可以在投影中使用索引

db.collection.find({"vitamins":"A1"}, {"fruit":1, "vitamins.$":1})

选项 2:如果您希望能够匹配数组中的多个元素,您可以查看 aggregation framework :

db.collection.aggregate([{$unwind:"$vitamins"}, {$match:{"vitamins":"A1"}}])

关于python - mongodb:查询列表中的值(而不是对象),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23500666/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com