Я хочу получить все документы из коллекции MongoDB, где поле users
является либо числовым, либо строкой, состоящей из всех цифр (1, 2, 19 или «4», «19», .. .)
Я запрашиваю:
db.getCollection('collection').find(
{
users: { $or : [ { $type: [1, 16, 18, 19] },
{ $regex: /^[0-9]+$/ } ]
}
}
)
... и получаю ошибку «Неизвестный оператор $ или».
Это работает:
db.getCollection('collection').find(
{
$or: [
{users: { $type: [1, 16, 18, 19] } },
{users: { $regex: /^[0-9]+$/ }}
]
}
)
Почему не работает первый вариант?