No puedo encontrar cómo reemplazar el whiteSpace en blanco en una solicitud aggregate con MongoDB y cómo eliminar una parte de una cadena (probablemente necesite usar una expresión regular).
Ejemplo de mi documento:
{ "_id": "57dfa5c9xxd76b65426d5cca", "battle_id": "5744f01d1ad716a349c4999a", "is_first": false, "title": "division 1 #3" }, { "_id": "13dfa529dxd123x5426d5ccb", "battle_id": "1244x51d1aq546a349c423rcc", "is_first": true, "title": "division gold #5" }Lo que estoy haciendo actualmente:
.project({ "battle_id": "$battle_id", "is_first": { $cond: [ { $eq : ["$rank" , 1] }, true, false ] }, "title": { $toLower: "$battle.title" } }) ¿Es posible cambiar cada espacio en blanco por el carácter "_" o debo hacerlo en un forEach() después de la solicitud?
Además, ¿es posible formatear la cadena para que nunca me devuelva el #3 por ejemplo?
Resultado que necesito (los cambios están en el título):
{ "_id": "57dfa5c9xxd76b65426d5cca", "battle_id": "5744f01d1ad716a349c4999a", "is_first": false, "title": "division_1" }, { "_id": "13dfa529dxd123x5426d5ccb", "battle_id": "1244x51d1aq546a349c423rcc", "is_first": true, "title": "division_gold" }Puede reemplazar los espacios en blanco y dar formato a la cadena usando Expresiones regulares y Array#map() para obtener el result :
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);