mongodb上的sql查询以获取多列的计数与单列的id值
Posted
技术标签:
【中文标题】mongodb上的sql查询以获取多列的计数与单列的id值【英文标题】:sql query on mongodb to get counts of multiple columns against the id value of single column 【发布时间】:2018-12-21 08:25:23 【问题描述】:我是 mongodb 的新手。我陷入了一个问题。
我想根据包含 ID 的单个列的值来获取多列的计数。
假设对于特定的id
,我有不同的列(author1
、author2
、author3
、...等等)。
现在我想获取特定 id
的作者总数。
因此,我想根据该 ID 计算作者的总列数以获取计数。
这是一个好方法吗?
【问题讨论】:
为什么不为作者创建一个单列?因此,当您查询特定 ID 时,您将获得所有相关作者的结果,并且您将轻松获得计数。 实际上我有一个包含 800 万条记录的数据库,并且我已经导出了数据库中的 json 文件。作者是父表的子表的列。因此,似乎很难将所有作者列为一栏。你有什么简单的方法吗? 【参考方案1】:一种解决方案是使用带有条件总和的聚合查询,例如:
SELECT SUM(
CASE
WHEN (author1 = 'id' OR author2 = 'id' OR author3 = 'id' --more columns...)
THEN 1
ELSE 0
END
)
FROM table
归根结底,您最好使用单个列来存储作者,这样您就可以只查询该列而不是查看其中的几个。
【讨论】:
mongodb sql不支持CASE以上是关于mongodb上的sql查询以获取多列的计数与单列的id值的主要内容,如果未能解决你的问题,请参考以下文章