我有两个集合——Tickets
和Users
。一个user
可以有一个对多个tickets
。票集合定义如下
Ticket = {_id, ownerId, profile: {name}}
ownerId用于查找属于特定人员的所有门票。我需要写一个查询,得到我所有的用户没有票。
我如何写这个查询,而不必通过所有用户循环,检查userID是否出现在任何门票?
双向存储会给我带来性能问题吗?例如,如果我要更改users
集合并添加tickets: [ticketID, ticketID2, ...]
?
我将使用存储在用户中的门票数组。据我所知,Mongo并没有真正的方法来根据一个集合中的元素(缺乏)查询另一个集合。但是,对于数组,您可以简单地执行db.users.find({tickets:[]})
。