[英]Using MongoDB aggregations in PHP with the MongoDB/Driver/Manager class
我需要在 PHP 中执行 MongoDB 聚合。
我读到了MongoCollection::aggregate方法,但是要使用MongoCollection class 我需要通过MongoClient class 来 go,这是 deprecated.
在文档中,据说使用MongoDB驱动程序和MongoDB\Driver\Manager class。 我已经将这个 class 用于我的所有查询、更新和插入,但是我找不到执行聚合的方法。
该主题对我没有帮助,因为它使用常规查询。
我很惊讶我在那里找不到任何答案。
也许我在不需要聚合时专注于聚合,所以这就是我想要做的:
我有一个users
集合,其中包含一个字符串数组的peels
字段。
我想为给定用户计算与特定正则表达式匹配的peels
字段的元素数量。
例如,如果我有这个用户:
{
"_id": ObjectId("5ff337f8415b0000f9003b78"),
"name": "Foo",
"peels": [
"2021-03-08",
"2021-04-19",
"2020-07-20",
"2020-08-10"
]
}
我想获取用户在 2021 年的日期数,因此匹配正则表达式2021-*
。 这应该给我2
。
如果这确实可以在没有聚合的情况下解决,那么了解如何将聚合与MongoDB/Driver/Manager或任何其他不推荐使用的解决方案一起使用仍然会很有趣。
https://www.php.net/manual/en/mongocollection.aggregate.php是已弃用扩展的一部分。 不是根据https://www.php.net/manual/en/class.mongoclient.php弃用的客户端,而是整个扩展。
替代品是扩展和更高级别的库。 https://www.php.net/manual/en/set.mongodb.php是扩展。 https://docs.mongodb.com/php-library/master/tutorial/是库。 您应该使用该库,除非您有特定的理由使用该扩展。
https://docs.mongodb.com/php-library/master/tutorial/crud/#complex-queries-with-aggregation显示了该库的聚合示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.