Проблемы с синтаксисом оператора запроса Mongoose

#node.js #mongodb #express #mongoose

#node.js #mongodb #экспресс #mongoose

Вопрос:

извините за вопрос новичка.

Я пытаюсь написать конечные точки CRUD для модели дружбы, которая содержит идентификаторы двух пользователей.

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

 Friendship.findOne.all({users: [user1.id, user2.id]})
  .then(.....
  

Но сервер отвечает с ошибкой 500: Friendship.findOne.all is not a function

Каков был бы правильный способ сделать это?

Комментарии:

1. Короче говоря, вы хотите проверить, существуют ли оба заданных идентификатора 2 в вашей БД или нет?

Ответ №1:

Я предполагаю, что вы хотите проверить, присутствуют ли оба id records/documents в вашем collection или нет, поэтому для этого вы используете $in оператор, подобный этому

 Friendship.find({id: {$in : [user1.id, user2.id]} })
  .then(.....
  

Это вернет array количество записей, если какая-либо из id записей будет присутствовать. И он вернет пустой array , если ни одна из id записей не будет представлена в вашей БД