gpt4 book ai didi

Mongodb $match 和 $project 聚合

转载 作者:可可西里 更新时间:2023-11-01 10:33:26 24 4
gpt4 key购买 nike

我有这套非常简单的文档。

> db.ysTest.aggregate({$project:{_id:1,unitStatus:1}});
{
"result" : [
{
"_id" : ObjectId("514309f3e18aa7d14100217a"),
"unitStatus" : "es_pws"
},
{
"_id" : ObjectId("514309f3e18aa7d141002816"),
"unitStatus" : "es_run"
},
{
"_id" : ObjectId("514309f0e18aa7d14100021e")
}
],
"ok" : 1
}

当使用 $match 和 $project 使用“聚合”时,我希望有 1 个文档,但我得到了所有文档。注意:我使用聚合是因为这将成为更复杂匹配的一部分,但我试图在这个示例中保持简单。

> db.ysTest.aggregate({
... $match: {
... unitStatus: {$exists: true, $nin: ["es_pws", "es_stl"]}
... },
... $project: {_id: 1,unitStatus:1}
... });
{
"result" : [
{
"_id" : ObjectId("514309f3e18aa7d14100217a"),
"unitStatus" : "es_pws"
},
{
"_id" : ObjectId("514309f3e18aa7d141002816"),
"unitStatus" : "es_run"
},
{
"_id" : ObjectId("514309f0e18aa7d14100021e")
}
],
"ok" : 1
}

我做错了什么?

最佳答案

通过查看您的文档、查询和评论,很明显您没有使用 $group 运算符,而 $match 只是一个筛选子句结果基于您给定的标准。在你的情况下

... $match: {
... unitStatus: {$exists: true, $nin: ["es_pws", "es_stl"]}
... }

但是 $match$group 不保证它会返回一个文档。什么保证是你的架构,查询条件。

关于Mongodb $match 和 $project 聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15533417/

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