MongoDB collection.findOne API не дает ответа - PullRequest
0 голосов
/ 26 сентября 2018

Я использую драйвер MongoDB nodeJS для базы данных MongoDB.

Пытаюсь получить один результат из базы данных, используя collection.findOne() с объектом запроса.

Когда он выполняется, скрипт даетя null ответ.Однако, если то же самое выполняется из оболочки mongo, оно дает мне ответ с одним документом.

Ниже приведен пример кода, который выполняет запрос к базе данных.

construct(venue) {
  console.log(venue) /* prints -> I love to sit in A\/C */
  let promise = new Promise((resolve, reject)=>{
    myCollection.findOne({
      "Venue": venue
    }) 
    .then( r => {
      if(r == null) {
        throw new Error("Venue name dose not exits in the response");
      } else {
        resolve(r.VenueCode)
      }
    })
  }
  return promise;
}

venue - это переменная, которую я получил после анализа параметра запроса из URL-адреса запроса.

let venue = req.query.venue;

Это происходит, только если в переменной venue есть символ '\'.

Например:

    I love to sit in A\/C (dose not work! null result)
    I love AC ( works fine)

Та же строка (с обратной косой чертой) работает внутри оболочки монго.

db.myCollection.find({"Venue":"I love to sit in A\/C"}).pretty()
{
    "_id" : ObjectId("5babsdf92f2c5082d5f478aebfa"),
    "VenueCode" : "ABCD",
    "Venue" : "I love to sit in A/C ",
    "list" : "9999"
}

Обновление:

Спасибо @ TimaGegewepe .Удаление backslah из переменной venue решило мою проблему.

Однако все еще остается неясным одно - когда я вставляю данные в modgoDB с помощью другого скрипта, в документе вставки появляется обратная косая черта.Внутри оболочки Монго, когда я выполняю find () с запросом, содержащим обратную косую черту, без обратной косой черты оба удаляют результат, но в моем сценарии я должен удалить обратную косую черту внутри объекта запроса.

1 Ответ

0 голосов
/ 27 сентября 2018

Вы пробовали, как это?

let v='I love to sit in A\/C';

db.myCollection.findOne({"Venue": /.v./})

Как запросить MongoDB с "лайк"?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...