mongodb - 如何获取具有特定数组集合的文档
问题描述
我正在尝试获取在其用户数组中具有特定用户的文档
那是
Schema.books({
users:[ { type: mongoose.Schema.types.objectId, ref:'users' } ]
})
没有我试图获取具有特定数量用户的书籍文档,比如说两个用户。
我确实试过这个
Let usersId = [ user1, user2 ]
Book.find().where(users).in(usersId)
但相反,我得到了一个包含所有 user1 的数组,我是其中的一个成员,我完全不知道该做什么我真的需要你的帮助
解决方案
您需要使用$and
运算符。如果没有 $and 运算符,您将查询具有 userId1 或 userId2 的书籍
Book.find({
$and: [{ users: userId1 }, { users: userId2 }]
});
如果您的userId
循环很大或不固定,您可以执行以下操作:
Book.find({
$and: userIds.map(v => ({users:v}))
});
推荐阅读
- python - 数据框中的 Python Pandas 数据框
- python - 限制while循环中的python线程数
- mongodb - MongoDB中的自连接查询
- ethereum - get value 函数如何在稀疏 merkle 树中工作?
- caching - 覆盖 PWA 服务工作者中的浏览器缓存
- gitlab - 如何在 gitlab .md 文件中创建可填充/可编辑的文本框?
- xslt-2.0 - XSLT 2.0:检查节点集中的字符串是否包含在另一个字符串中
- javascript - Html/jquery 多表单提交
- azure-data-factory - 在 Azure 数据工厂中,是否可以在不使用数据流的情况下控制大量输出文件的文件名?
- c# - 如何在 ActiveMQ Artemis 中创建非持久队列?