1

我有两个系列 -TicketsUsers. 哪里user可以有一对多tickets。票据集合定义如下

Ticket = {_id, ownerId, profile: {name}}

ownerId 用于查找属于特定人员的所有票证。我需要编写一个查询来获取所有没有票的用户。

如何编写此查询而不必遍历所有用户,检查用户 ID 是否出现在任何票证中?

双向存储会导致我出现任何性能问题吗?例如,如果我要更改我的users收藏并添加一个数组tickets: [ticketID, ticketID2, ...]

4

1 回答 1

0

我会选择存储在用户中的一系列票证。据我所知,Mongo 并没有办法根据另一个集合中的(缺少)元素来查询一个集合。但是,使用数组,您可以简单地执行db.users.find({tickets:[]}).

于 2013-06-08T23:42:54.593 回答