小编use*_*347的帖子

MongoDb聚合:按x选择所有组

我正在尝试使用新的聚合框架将以下类似SQL的语句转换为mongo-query .

SELECT * FROM ...
GROUP BY class
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已设法编写以下内容,但效果很好 - 但只选择/返回一个字段.

db.studentMarks.aggregate(
   {
     $project: {
        class : 1 // Inclusion mode
     }
   },
   {
     $group: {
        _id: "$class"
     }
   }
);
Run Code Online (Sandbox Code Playgroud)

我还尝试使用$ project pipelines 排除模式,添加一个从不存在的字段名称,以欺骗MongoDb返回所有字段.虽然语法正确,但不返回任何结果.例如:

db.studentMarks.aggregate(
   {
     $project: {
        noneExistingField : 0 // Exclusion mode...
                              // Attempt to trick mongo into returning all fields
                              // sadly this fails - empty array is returned.
     }
   },
   {
     $group: {
        _id: "$class"
     }
   }
);
Run Code Online (Sandbox Code Playgroud)

我之所以需要返回所有字段,是因为我不知道(将来)将会出现哪些字段.例如,"学生"可能具有字段x,y,z或不具有字段x,y,z.因此,我需要"全选",将结果按单个字段分组并返回,为了通用目的 - 不必是"学生标记",可以是任何类型的数据集,而不知道所有领域. …

mongodb aggregation-framework

5
推荐指数
1
解决办法
5134
查看次数

Composer,以编程方式读取包版本号

对于基于 Symfony 的控制台应用程序,我需要以编程方式从它的 Composer 文件(不是分支别名)中读取它的版本号。

手动,我可以使用 来composer show -s获取根包信息,但似乎没有任何命令来获取我的包的干净版本。

目的是在运行应用程序时自动显示已安装的软件包版本,而无需处理 *.txt 文件或其他包含语义版本号的基于文件的方式。

遗憾的是我不熟悉作曲家的架构,所以我不知道可以使用哪些组件来实现这一目标。

任何想法或者可能已经制作好的解决方案都是受欢迎的。

composer-php

2
推荐指数
1
解决办法
1870
查看次数