使用双向查询在mongoDB中检索记录

时间:2013-06-08 23:32:56

标签: mongodb bidirectional-relation

我有两个收藏集 - TicketsUsersuser可以有一对多tickets的位置。故障单集合定义如下

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

ownerId用于查找属于特定人员的所有故障单。我需要编写一个查询,让所有用户都没有门票。

如何在不必遍历所有用户的情况下编写此查询,检查用户ID是否显示在任何故障单中?

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

1 个答案:

答案 0 :(得分:0)

我会使用存储在用户中的票证数组。据我所知,Mongo实际上没有办法根据另一个集合中的(缺少)元素查询一个集合。但是,使用数组,您只需执行db.users.find({tickets:[]})

相关问题