генерировать динамические поля с помощью манго (без агрегата)

Вы можете использовать match для определения такой функции:

String.prototype.count = function(search) {
    var m = this.match(new RegExp(search.toString().replace(/(?=[.\\+*?[^\]$(){}\|])/g, "\\"), "g"));
    return m ? m.length:0;
}
1
задан Florent Arlandis 13 July 2018 в 09:49
поделиться

3 ответа

Спасибо @Sergio Tulentsev за помощь в решении проблемы, вот решение:

query = {
        $push: {
          evtsGame: newEvent
        },
        $set: {
          [expField]: goalValue.exp,
          updatedAt: moment().toISOString()
        },
        $inc: {
          [scoreField]: goalValue.score
        }
      };
1
ответ дан Florent Arlandis 17 August 2018 в 13:16
поделиться

Вам нужно заставить expField интерпретироваться как значение, а не как имя. Не уверен, возможно ли это в синтаксисе объектного литерала, но вы всегда можете сделать что-то вроде этого:

query = {
  $push: {
    evtsGame: newEvent
  },
  $set: {
    updatedAt: moment().toISOString()
  },
  $inc: {
    scoreField: goalValue.score
  }
};

query['$set'][expField] = goalValue.exp;
0
ответ дан Sergio Tulentsev 17 August 2018 в 13:16
поделиться
  • 1
    Вроде. См. Мое редактирование для решения. Спасибо за помощь :) – Florent Arlandis 13 July 2018 в 09:45
  • 2
    @FlorentArlandis Опубликуйте это как ответ, а не добавляйте к вопросу. Потому что это ответ. – Sergio Tulentsev 13 July 2018 в 09:47

Выполняя это,

 $set: {
          expField: goalValue.exp,
        }

В базе данных, dbEngine предположим, что в collection имеется файл expField, а затем он присваивает ему значение.

Попробуйте это решение, возможно, это помогает:

query = {
        $push: {
          evtsGame: newEvent
        },
        $set: {
          updatedAt: moment().toISOString()
        },
        $inc: {
          scoreField: goalValue.score
        }
      };
query['$set'][evtsGame]=goalValue.exp; // Change Here, It will be dynamic.
0
ответ дан Shubham Verma 17 August 2018 в 13:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: