我目前正在學習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