gpt4 book ai didi

python - 使用数组在 mongodb 中查找值

转载 作者:太空宇宙 更新时间:2023-11-03 17:15:26 24 4
gpt4 key购买 nike

我正在尝试从 mongodb 表中获取值,该表存储有关商店盘点日期的数据(日期存储为字符串)以及 python。

表中存储的数据:

{
"_id" : ObjectId("5645f0443f32df13e0dc786e"),
"RequiredDate" : "28-9-2015",
"Name": "xyz"
}
{
"_id" : ObjectId("5645f0c73f32df062064a0f6"),
"RequiredDate" : "29-9-2015",
"Name": "abc"
}

我想查找这两天需要的产品名称28-9-2015 & 29-9-2015 .

现在像这样单独做

db.stockdate.find({"RequiredDate": "28-9-2015"})
db.stockdate.find({"RequiredDate": "29-9-2015"})

我可以在单个查询中执行这些操作吗?有什么选择吗?就像在单个查询中给出两个日期并获得与两个查询相同的结果。

最佳答案

使用$in运算符。

db.stockdate.find({"RequiredDate": {$in: ["28-9-2015", "29-9-2015"]}})

此外,如果您只想要产品名称,可以使用

db.stockdate.distinct("Name", {"RequiredDate": {$in: ["28-9-2015", "29-9-2015"]}})

如果您想根据日期对记录进行分组,则需要使用聚合:

db.stockdate.aggregate([
{$match: {"RequiredDate": {$in: ["28-9-2015", "29-9-2015"]}}},
{$group: {_id: "RequiredDate", Names: {$push: "$Name"}, count: {$sum: 1}}}
])

上面的聚合查询将产生如下结果:

{
"_id" : "28-9-2015",
"Names": ["xyz"],
"count": 1
}
{
"_id" : "29-9-2015",
"Names": ["abc", "def"],
"count": 2
}

您可以向数组添加任意数量的日期,这将返回将 reuiredDate 设置为任何这些日期的记录。

关于python - 使用数组在 mongodb 中查找值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33708704/

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