У меня есть UserSchema, который содержит PhoneNumberSchema, как показано ниже.пользовательский поиск массового груза по телефонам
var PhoneNumberSchema = new Schema({
country: {
type: String
},
country_code: {
type: Number
},
local_number: {
type: Number
}
});
И вот образец json-формата phone_number.
"phone_number": {
"country": "US",
"country_code": "1",
"local_number": "04152341"
}
Что я хочу сделать, это поиск пользователей по телефонным номерам с/без кода страны.
Ну, если запрос
"phone_numbers": [ "104152341", "124254364"]
, то я хочу, чтобы пользователи, которые уже точно совпадающие номер телефона, который принадлежит в запросите номер телефона с/без кода страны.
Итак, я попробовал как показано ниже, но получил ошибку «invalid operator '$ in'".
User.aggregate(
[
{ "$redact": {
"$cond": [
{
"$in": [ { "$concat": [ "$phone_number.country_code", "$phone_number.local_number" ] }, req.body.phone_numbers]
},
"$$KEEP",
"$$PRUNE"
]
}}
],
function(err, users) {
// Do something
if (err) {
return res.json({ success: false, err: err });
}
res.json({ success: true, users: users });
}
)
Я надеюсь узнать, как справиться с проблемой.
Пожалуйста, помогите мне!
Отлично, но мы должны также обращаться с/без кода страны, $ setIsSubset хорошо для двух полей конкатенации. :) – BigDaddy