#mongodb
Вопрос:
Я пытаюсь выполнить запрос о
SELECT id FROM inventory WHERE LEFT(id,4) = "1234"
в mongodb.
я пытался использовать, как:
db.inventory.aggregate(
[
{$match : { $substr: ["$id",0,4] : "1234"}},
{
$project:
{
id: 1,
date:1
}
}
]
)
это возвращает мне ошибку. есть какие-либо предложения по поводу того, какой запрос мне следует использовать? Спасибо.
Ответ №1:
Вам не хватает $eq
условия внутри выражения,
db.inventory.aggregate([
{
$match: {
$expr: {
$eq: [{ $substr: ["$id", 0, 4] }, "1234"]
}
}
},
{
$project: {
id: 1,
date:1
}
}
])
Комментарии:
1. привет, спасибо за ответ, я попробовал запрос, но он не возвращает результата. —- РЕДАКТИРОВАНИЕ —- он действительно что-то возвращает. он возвращается, если вы ставите соответствие перед сортировкой и ограничением. поэтому размещение очень важно. Огромное спасибо!