首页 > 解决方案 > 如何获取具有特定数组集合的文档

问题描述

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

那是

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

没有我试图获取具有特定数量用户的书籍文档,比如说两个用户。

我确实试过这个

Let usersId = [ user1, user2 ]

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

但相反,我得到了一个包含所有 user1 的数组,我是其中的一个成员,我完全不知道该做什么我真的需要你的帮助

标签: mongodbmongoose

解决方案


您需要使用$and运算符。如果没有 $and 运算符,您将查询具有 userId1 或 userId2 的书籍

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

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

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

推荐阅读