繁体   English   中英

将 PHP 中的 MongoDB 聚合与 MongoDB/驱动程序/管理器 class 一起使用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM