如何获取具有特定数组集合的文档

时间:2020-01-12 02:49:22

标签: mongodb mongoose

我正在尝试获取其用户数组中具有特定用户的文档

那是

  Schema.books({
    users:[ { type: mongoose.Schema.types.objectId, ref:'users' } ]
  })

不是要获取特定数量的用户的图书文档,比如说两个用户。

我确实尝试过

Let usersId = [ user1, user2 ]

Book.find().where(users).in(usersId)

但是相反,我得到了所有user1的一个数组,而我是我的一员,我完全迷失了该怎么办,我真的需要您的帮助

1 个答案:

答案 0 :(得分:1)

您需要使用$and operator。没有$ and运算符,您将查询具有userId1或userId2

的图书
Book.find({
  $and: [{ users: userId1 }, { users: userId2 }]
});

如果您的userId循环很大或没有固定,您可以执行以下操作:

Book.find({
  $and: userIds.map(v => ({users:v}))
});