Использование массива Javascript в запросе на обновление mongodb с $ in - PullRequest
1 голос
/ 03 июля 2019

Я пытаюсь обновить все документы в моей коллекции, в которых есть поля, содержащие любое из значений в моем массиве javascript. Я продолжаю получать ошибку «$ in needs a array». Я не понимаю, как преобразовать объект JavaScript в массив, который будет принимать Монго.

Вот мой код для серверной части:

 MongoClient.connect(url, function(err, db) {
          if (err) throw err;
          var dbo = db.db("test");
          var myquery = { transferID: {$in: {idStore}}};
          var newvalues = {$set: {redAlert: "1"} };
          dbo.collection("myCollection").updateMany(myquery, newvalues,     function(err, res) {
            if (err) throw err;
            console.log(res.result.nModified + " document(s) updated");
            db.close();
          });
       });

Вот мой массив:

var idStore = [123, 456, 789]

1 Ответ

0 голосов
/ 03 июля 2019

Нет проблем с вашим массивом, но проблема с вашим запросом, вы передаете idStore с фигурными скобками ({}), что делает его object, поэтому он выдает эту ошибку.

измените ваш запрос на это и попробуйте:

var myquery = { transferID: {$in: idStore}};//without {}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...