我现在有一个集合Raffle,其中每个文档都包含一个raffle_id和user_id。此集合包含一个用户购买的抽奖票,因此每个用户可以为许多不同的抽奖者提供多张彩票。我已经查询了这个集合,以返回所有匹配我传入的特定id的raffle_id,因此,如果我有10个不同的抽签,并且我假设只询问属于“赢得一个全新项链”抽奖的票,我只会收到这些条目(而不是属于“赢得一辆新车”的门票)。数组包含用户的id。
例如:
myArr[0] = "104abc191";
myArr[1] = "134gkd131";
...
myArr[n] = "404fdc259";由于这个数组包含输入特定抽奖的不同用户,它的大小可以是非常大的、非常小的,或者介于两者之间。
由于我只有表示用户id的字符串数组,所以我希望能够根据这些id查询我的User集合,以查找用户的其他信息(电子邮件、电话等)。如何在集合中查询与数组中任何id匹配的文档?
我想做一些类似于以下的事情:
User.find({ $or: [{ "id": myArr[0] }, { "id": myArr[1] }, ..., { "id": myArr[n] });我不确定我是否可以在$or数组中包含两个以上的条件(我假设是的),但是这似乎不太实际,因为我的搜索标准可能非常大,这取决于有多少不同的用户已经输入了这个特定的抽奖。
我是否能够使用“如果集合包含与给定数组中任何值相匹配的id的文档,将它们添加到要返回的数组中”之类的内容来查询集合?
发布于 2021-10-07 18:30:25
$in (https://docs.mongodb.com/manual/reference/operator/query/in/)怎么样?
User.find({ id: { $in: myArr }});https://stackoverflow.com/questions/69486113
复制相似问题