在字符串中获取不同的第一个单词

时间:2016-11-16 15:22:49

标签: mongodb distinct

我尝试在数据库的字段中获得不同的第一个单词:

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

但这并不适用,但也许有助于了解我想做什么。

说我有两份文件:

{
  "_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的不同值。 有没有办法做到这一点?

最好的问候

1 个答案:

答案 0 :(得分:2)

您可以使用 map() 方法返回列表,如下所示

Mongo Shell:

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

示例输出

[ "FirstCity", "SecondCity" ]