3

Ich kann nicht finden, wie man die whiteSpace in einer aggregate Anfrage mit MongoDB ersetzt und wie man einen Teil einer Zeichenkette löscht. (Ich werde wahrscheinlich eine Regex benutzen müssen).Ersetze Leerraum und Formatzeichenkette

Beispiel meines Dokuments:

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

Was ich mache zur Zeit:

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

Ist es möglich, durch "_" Charakter jedes weißen Raum zu ändern oder muss ich tun es in einem forEach() nach der Anfrage?

Darüber hinaus ist es möglich, die Zeichenfolge zu formatieren, um mir nie die #3 zum Beispiel zurückgeben?

Ergebnis, das ich brauche (Änderungen in Titel sind):

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

Antwort

0

Sie Leerraum ersetzen kann und Format-String durch Regular Expressions und Array#map() mit der result zu bekommen:

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

Danke, so gibt es keine richtige so Lösung, um es direkt mit Mongo zu machen. Also danke dir, ich werde auf diesem Weg weitermachen. – Makaille

Verwandte Themen