Я пытаюсь найти способ фильтрации одного значения по массиву в агрегации. Например, у меня есть данные ниже:
{ "user" : "InternetBot", "userid" : 001, "timestamp" : "2020-02-22T00:51:07Z", "title" : "Australia" }
{ "user" : "ArchiveBot", "userid" : 031, "timestamp" : "2020-02-22T00:51:07Z", "title" : "Australia" }
{ "user" : "David", "userid" : 312, "timestamp" : "2020-02-22T00:51:07Z", "title" : "Another Book" }
{ "user" : "Tim", "userid" : 111, "timestamp" : "2020-02-22T00:51:07Z", "title" : "A novel" }
{ "user" : "AutoBot", "userid" : 222, "timestamp" : "2020-02-22T00:51:07Z", "title" : "A paint" }
У меня есть список всех зарегистрированных пользователей бота, usch как:
[InternetBot, AutoBot, ArchiveBot]
Я хотел чтобы отфильтровать пользовательское поле по этому списку и сохранить только тот документ, чей пользователь находится в этом списке ботов, то есть вывод ниже:
{"user": "InternetBot", "userid": 001, "timestamp": "2020 -02-22T00: 51: 07Z "," title ":" Австралия "}
{" пользователь ":" ArchiveBot "," идентификатор пользователя ": 031," метка времени ":" 2020-02-22T00: 51: 07Z "," title ":" Австралия "}
{" user ":" AutoBot "," userid ": 222," timestamp ":" 2020-02-22T00: 51: 07Z ", "title": "Paint"}
Мне также нужно сделать это в Aggregation, поскольку мне нужно выполнять и другие этапы.
Я пробовал оба $filter
и $match
, но не смог заставить его работать. Это кажется глупым вопросом, но если кто-то может помочь, я буду признателен!