Я использую драйвер 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 () с запросом, содержащим обратную косую черту, без обратной косой черты оба удаляют результат, но в моем сценарии я должен удалить обратную косую черту внутри объекта запроса.