#node.js #mongodb #mongoose #mongoose-schema
#node.js #mongodb #mongoose #mongoose-schema
Вопрос:
Я использую mongoose, и моя схема:
const DeliverySchema = new mongoose.Schema({
startPlace:{type: String,required: true},
endPlace:{type: String,required: true},
});
Предполагая, что начальное и конечное поля содержат места в формате Google: улица и город. Возможно ли выполнить запрос, в котором указан только город и который возвращает все JSON, в начале или конце которых этот город указан в качестве подстроки?
Итак, если моя запись:
startPlace:"Milano, MI, Italia",
endPlace:"Roma,RM,Italia"
И мой запрос имеет параметр:
startPlace:"Milano"
Это возвращает мне JSON.
Большое вам спасибо.
Комментарии:
1. Пожалуйста, покажите запрос, если вы пробовали какой-либо из них ИЛИ где-то застряли. Возможно, вы захотите посмотреть на
$regex
2. Попробуйте
db.collection.find({ $or: [ { startPlace: new RegExp('Milano', 'i') }, { endPlace: new RegExp('Milano', 'i') } ] }, {});
Ответ №1:
DeliverySchema.aggregate([
{
$match: {
$or: [
{
startPlace: {
$regex: "Milano, ?. , ?. "
}
},
{
endPlace: {
$regex: "Milano, ?. , ?. "
}
}
]
}
}
])
Ответ №2:
db.collection.aggregate([{
$match: {
$or: [{
startPlace: {
$regex: ".*Milano.*"
}
},
{
endPlace: {
$regex: ".*Milano.*"
}
}
]
}
}])