У меня есть документ, который звучит так:
{
"_id" : NumberLong(111603),
"max" : "Created At",
"document" : {
"_id" : ObjectId("54ad61013e016de5798c0582"),
"testfield1" : "ISUZU (GM)",
"Model - Range" : "N-series",
"testfield2" : "N NQR 75",
}
}
И я хотел бы объединить в коллекции, содержащей ряд этих документов. У меня проблема с «Model-Range» на шаге $ project. В настоящее время я использую
db.AE.aggregate([
{"$project":{
"Make":"$document.testfield1",
"Model":"$document.testfield2",
"_id":0,
"Group": "$document['Model - Range']"
}}
]);
Но по какой-то причине, MongoDB полностью игнорируя поле группы и только при добавлении двух других полей.
Есть ли способ адресовать поля с пробелами/специальными символами в них при проектировании в структуре агрегации MongoDB?
Да, это недействительный способ опознать это (это строка, а не код JavaScript, который вы заметили), и вы действительно не должны называть такие поля. Windows учила слишком много молодых людей очень вредных привычек. Мы кодируем и моделируем «consecutiveCamelCasedNames», потому что у нас есть опыт, и мы знаем, что работает, а что нет. –
Что делать, если у меня нет контроля над именами полей на основе документации mongoDB, единственными символами, которые не приняты, являются «.». и те, которые начинаются с «$». – Bola
На это ответили. Я не хотел, потому что вы действительно не должны называть свойства таким образом. Это приводит только к тому, что кто-то приходит и исправляет ваш код. Оставьте лучшее наследие в мире и сделайте это в первый раз. –