2017-01-18 14 views
3

aggregateリクエストのwhiteSpaceをMongoDBに置き換える方法と、文字列の一部を削除する方法がわかりません(おそらく正規表現を使用する必要があります)。私の文書の空白と書式文字列を置換する

例:

.project({ 
    "battle_id": "$battle_id", 
    "is_first": { 
     $cond: [ 
      { $eq : ["$rank" , 1] }, 
      true, 
      false 
     ] 
    }, 
    "title": { $toLower: "$battle.title" } 
}) 

"_"文字で各ホワイトスペースを変更することが可能ですか、私はする必要があります:私は現在やっている何を

{ 
    "_id": "57dfa5c9xxd76b65426d5cca", 
    "battle_id": "5744f01d1ad716a349c4999a", 
    "is_first": false, 
    "title": "division 1 #3" 
},  
{ 
    "_id": "13dfa529dxd123x5426d5ccb", 
    "battle_id": "1244x51d1aq546a349c423rcc", 
    "is_first": true, 
    "title": "division gold #5" 
} 

リクエスト後にforEach()でそれをしますか?

さらに、たとえば#3を返さないように文字列をフォーマットすることは可能ですか?私は(変更がタイトルにある)必要

結果:

{ 
    "_id": "57dfa5c9xxd76b65426d5cca", 
    "battle_id": "5744f01d1ad716a349c4999a", 
    "is_first": false, 
    "title": "division_1" 
},  
{ 
    "_id": "13dfa529dxd123x5426d5ccb", 
    "battle_id": "1244x51d1aq546a349c423rcc", 
    "is_first": true, 
    "title": "division_gold" 
} 

答えて

0

あなたはresultを得るためにRegular ExpressionsArray#map()を使用して空白と書式文字列を置き換えることができます。

var arr = [{"_id": "57dfa5c9xxd76b65426d5cca","battle_id": "5744f01d1ad716a349c4999a","is_first": false,"title": "division 1 #3"},{"_id": "13dfa529dxd123x5426d5ccb","battle_id": "1244x51d1aq546a349c423rcc","is_first": true,"title": "division gold #5"}], 
 
    result = arr.map(i => { 
 
     return { 
 
     '_id': i._id, 
 
     'battle_id': i.battle_id, 
 
     'is_first': i.is_first, 
 
     'title': i.title.replace(/\s#[0-9]+/g, '').replace(/\s/,'_') 
 
     }; 
 
    }); 
 

 
console.log(result);

+0

ありがとうございますmongoで直接それを行うlution。あなたにありがとう、私はこのように続けます。 – Makaille