2016-11-16 37 views
2

我試圖讓在現場不同的第一詞在數據庫:獲取不同的第一單詞串

db.mycollection.distinct(substr(0, city.indexOf(' ')),{"state":"FirstState"}) 

但是,這並不obviosly工作,但也許它有助於獲取我想要的東西的想法去做。

說我有兩個文件:

{ 
    "_id": "10280", 
    "city": "FirstCity is great", 
    "state": "FirstState", 
    "pop": 2224 
}, 
{ 
    "_id": "10282", 
    "city": "SecondCity even greater", 
    "state": "FirstState", 
    "pop": 5574 
} 

然後我想:

["FirstCity","SecondCity"] 

即獲得數組中的city字段的first word的不同值。 有沒有辦法做到這一點?

問候

+0

你的問題不清楚。也許我們會理解您是否可以向我們展示帶有預期輸出的示例文檔 – styvane

+0

@Styvane請參閱最新的問題。 – user1665355

+0

看來你不能實現它,直到mongo 3.3.6。但目前的穩定版本是3.2.10。看這個[類似的問題](http://stackoverflow.com/questions/28282334/mongodb-group-by-field-using-substr) – gzc

回答

2

可以使用map()方法返回列表如下

蒙戈殼牌:

cities = db.mycollection.distinct("city", {"state" : "FirstState"}).map(function(city){ 
    return city.split(" ")[0]; 
}); 
printjson(cities); 

樣本輸出

[ "FirstCity", "SecondCity" ] 
+1

好的解決方案tnx! – user1665355

+0

你也許對如何在數組中獲取唯一元素有所瞭解? – user1665355

相關問題