我目前正在学习MongoDB,我有一些问题。Mongo选择不同的多个字段+通用体系结构
对于一个项目,我使用SQL,我有3个表格:Artist,Album,Song。
于是我决定改变到蒙戈,因为我有很多行,也因为我很好奇......
在蒙戈,我只有一个收集歌曲与它的一切:
- TRACKNAME
- ARTISTNAME
- 艺术品
- 夹
- ALBUMNAME
- albumDate
首先,我想知道,如果这个结构是正确的,或者我应该集合,我不得不在SQL每个表中创建? 我的主要目标是能够搜索artistName =“something”和trackName =“something_else”...通过简单的查找,它的工作非常快! :)
但是我还需要一个页面来显示所有艺术家的链接(文件夹),这里是我的问题: 我想显示所有艺术家,按artistName排序,以A开头(例如)和得到的文件夹,每个艺术家......
我尝试这样做:
$cursor =$collection->distinct("artistName", array("artistName" => $regex));
工作正常,但我需要的folder
..
然后我尝试这样的:
$ops = array(
array(
'$project' => array(
"artistName" => 1,
"folder" => 1,
)
),
array('$match' => array("artistName" => $regex)),
array('$group' => array(
'_id'=>'$artistName',
"artistName" => array('$first' => '$artistName'),
"folder" => array('$first' => '$folder')
),
array('$sort' => array('artistName'=>-1)),
)
);
$results = $collection->aggregate($ops);
,没有排序,但与那种我有以下错误的原理:
Pipeline::run(): unrecognized pipeline op "0'
所以我的问题是什么做什么,我需要最好的方法是什么?
非常感谢, 瓦伦丁
真的谢谢了!我今晚会测试,但这应该很棒! 关于艺术家和文件夹,实际上在我的系统中,我有一个由艺术家独特的文件夹,文件夹就像是艺术家的钥匙...所以我不知道这是否符合您的答案,所以我会检查今晚。 .. 无论如何非常感谢! – ValentinH
我刚刚检查了你的解决方案,两者都在我的案例中工作! ;) 解决! :d – ValentinH