В mongodb знаете индекс элемента массива, совпадающего с оператором $ in?
Я использую агрегацию с mongoDB, теперь я столкнулся с проблемой здесь, я пытаюсь сопоставить свои документы, которые присутствуют в моем входном массиве, с помощью оператора $ in. Теперь я хочу узнать индекс элемента из входного массива, может кто-нибудь, пожалуйста, скажите мне, как я могу это сделать.
Мой код
var coupon_ids = ["58455a5c1f65d363bd5d2600", "58455a5c1f65d363bd5d2601","58455a5c1f65d363bd5d2602"]
couponmodel.aggregate(
{ $match : { '_id': { $in : coupons_ids }} },
/* Here i want to know index of coupon_ids element that is matched because i want to perform some operation in below code */
function(err, docs) {
if (err) {
} else {
}
});
Схема купономодели
var CouponSchema = new Schema({
category: {type: String},
coupon_name: {type: String}, // this is a string
});
ОБНОВИТЬ- Как предполагает user3124885, что агрегация не лучше по производительности, может кто-нибудь сказать, пожалуйста, разницу в производительности между агрегацией и обычным запросом в mongodb. И какой из них лучше?
Обновить- Я читаю этот вопрос на SOMongoDB-агрегация-матч-против-найти-скорости, Здесь пользователь сам прокомментировал, что оба занимают одно и то же время, также увидеввлад-г ответ, я думаю, что агрегация лучше. Пожалуйста, если кто-то из вас работал над mongodb, то, пожалуйста, скажите мне, что вы думаете об этом.
ОБНОВИТЬ- Я использовал пример данных JSON, содержащий 30 000 строк, и попробовал сопоставить с агрегацией v / s. Агрегация запроса на поиск была выполнена за 180 мс, где поиск занял 220 мс. Также я запустил $ lookup, он также занимает не более 500 мс, поэтому думаю, что агрегация немного быстрее, чем обычный запрос. Пожалуйста, поправьте меня, ребята, если кто-то из вас пытался использовать агрегацию, и если нет, то почему?
ОБНОВИТЬ-
Я прочитал этот пост, где пользователь использует приведенный ниже код в качестве замены $ zipSERVER-20163 но я не понимаю, как я могу решить мою проблему, используя приведенный ниже код. Так может кто-нибудь, пожалуйста, скажите мне, как я могу использовать приведенный ниже код для решения моей проблемы.
{$map: {
input: {
elt1: "$array1",
elt2: "$array2"
},
in: ["$elt1", "$elt2"]
}
Теперь кто-нибудь, пожалуйста, помогите мне, это будет для меня большим подспорьем.