MongoDB:由2个数组查询

时间:2016-12-27 13:28:22

标签: mongodb mongoose mongodb-query aggregation-framework

假设我的架构如下:

Course:
      id,
      [ User ],
      [ Subscriber]

每个用户都有userId,每个用户都有一个用户ID。

现在,我为userIds和subscriberIds提供了两个数组。 示例:

这些ID是ObjectIds而不是字符串。

UserIds:[1,2,3]和subscriberIds:[4,2,6]

现在我需要找到3个课程,其中userIds和subscriberIds为(1,4); (2,2); (3,6)

所以,在这里我们不想要交叉产品。

1 个答案:

答案 0 :(得分:0)

你可以这样做:

.find({
  $or: userIds.map((userId, index) => ({
    User: userId,
    Subscriber: subscriberIds[index]
  }))
}).limit(3)