MongoDB фильтрует одно значение по списку массивов - PullRequest
0 голосов
/ 29 апреля 2020

Я пытаюсь найти способ фильтрации одного значения по массиву в агрегации. Например, у меня есть данные ниже:

{ "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, но не смог заставить его работать. Это кажется глупым вопросом, но если кто-то может помочь, я буду признателен!

...