我有一个票务系统,每个票号都有多个版本/文档。当最后一个文档的状态为“closed”时,该票将被视为关闭。我需要找出所有未关闭的票。以下是SQL查询:
SELECT * FROM tickets t WHERE NOT EXISTS ( SELECT 1 FROM documents d WHERE d.ticket_id = t.id AND d.status = 'closed' )select distinct(id) from tickets where id not in (select id from tickets where status = 'closed');
在MongoDB中,相应的查询是什么?
以下是一个票据文档的示例。
{
"id" : 100,
"timestamp": 1427863300000,
"status" : "open",
"description": "abc",
"comments": "pqr"
"assigned_to": "xyz"
}
可能会有几个与同一票号相关的文档,这是为了保留票据的历史记录。应用程序允许用户在历史模式下查看票务详细信息。当数据库中插入具有相同ID但状态为“已关闭”的文档时,该票证被视为关闭。
{
"id" : 100,
"timestamp": 1429200480000,
"status" : "closed",
"description": "abc",
"comments": "pqr"
"assigned_to": "xyz"
}
我希望查询不含有status=closed的任何文档的唯一票据ID。