MongoDB исключает определенные документы из агрегации - PullRequest
0 голосов
/ 31 марта 2020

Я пытаюсь случайным образом получить случайный документ из коллекции, которую я уже успешно достиг, с помощью следующего кода:

const username = 'willem';
db.db(MDBC.db).collection(MDBC.pC).aggregate([{ $sample: { size: 1 } }]).next((err, doc) => {console.log(doc)});

Однако я хочу наложить определенное ограничение на выбранный случайный документ, который является следующим:

Случайно выбранный документ имеет поле имени пользователя, которое не может иметь определенного значения, в данном случае 'willem'.

1 Ответ

1 голос
/ 31 марта 2020

Хм, вы можете добавить новый этап конвейера до получения случайного документа.

const username = 'willem';
db.db(MDBC.db).collection(MDBC.pC).aggregate([
{ $match: { username: { $not: { $eq: username } } } }
{ $sample: { size: 1 } }
])
 .next((err, doc) => {console.log(doc)});

совпадение фильтрует документы. Здесь он передает все документы, у которых нет имени пользователя willem, на следующий этап.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...