Database 在Mongodb上执行关系查询
我有两个收藏。一个命名事件和另一个命名应用程序。 应用程序包含特定事件的用户应用程序数据。 我想查找用户尚未应用的事件 注: 1.应用程序中的eventId字段是事件集合的DBRef。 2.应用程序中的userId字段是用户集合的DBRef。 3.用户只能对事件应用一次时间 请帮帮我。提前谢谢 活动:Database 在Mongodb上执行关系查询,database,mongodb,algorithm,mongodb-query,rdbms,Database,Mongodb,Algorithm,Mongodb Query,Rdbms,我有两个收藏。一个命名事件和另一个命名应用程序。 应用程序包含特定事件的用户应用程序数据。 我想查找用户尚未应用的事件 注: 1.应用程序中的eventId字段是事件集合的DBRef。 2.应用程序中的userId字段是用户集合的DBRef。 3.用户只能对事件应用一次时间 请帮帮我。提前谢谢 活动: [ { "_id" : ObjectId("5d07c45fabb5c771f8a81228"), "fee" : 400 }, {
[
{
"_id" : ObjectId("5d07c45fabb5c771f8a81228"),
"fee" : 400
},
{
"_id" : ObjectId("5d07c461abb5c771f8a81229"),
"fee" : 500
},
{
"_id" : ObjectId("5d07c463abb5c771f8a8122a"),
"fee" : 700
},
{
"_id" : ObjectId("5d07c466abb5c771f8a8122b"),
"fee" : 800
}
]
应用程序:
[
{
"_id" : ObjectId("5d07c4e8abb5c771f8a8122c"),
"eventId" : ObjectId("5d07c45fabb5c771f8a81228"),
"userId" : ObjectId("5d07c45fabb5c772f8a81978"),
"text" : "I am interested"
}
]
阶段1:$lookup-用于加入事件和应用程序集合 阶段2:$match-筛选没有任何用户应用程序的事件
[
{
'$lookup': {
'from': 'applications',
'localField': '_id',
'foreignField': 'eventId',
'as': 'eventsApps'
}
}, {
'$match': {
'$expr': {
'$lte': [
{
'$size': '$eventsApps'
}, 0
]
}
}
}
]
现在你只是要求我们用定制的教程重写一本教科书/手册&做你的家庭作业&你没有表现出任何研究或其他努力。大量的需求不是关于主题问题的。请看,点击谷歌的“stackexchange家庭作业”和鼠标文本上方的投票箭头。展示你能做的相关部分,并解释你被困的第一个地方。@philipxy我之前已经使用MongoDB聚合完成了这个任务,好的。我只是想知道是否有人有一个优化的解决方案。现在,如果您是数据库新手,检索数据的唯一方法是查询,并且您无法为相同的数据创建查询,那么当一些结果或查询没有用处或可能误导其他用户时,我应该如何显示这些结果或查询。显示您可以执行的相关部分,并解释您遇到的第一个问题。PS请在代码问题中给出一个-剪切、粘贴和可运行代码;示例输入,具有预期和实际输出,包括逐字错误消息;标签和清晰的说明和解释。这包括您能给出的最少代码,即您显示为OK的代码,由您显示为not OK的代码扩展。调试基础,谢谢。之前我是这样做的,我将从“应用程序”集合中检索事件ID,然后使用“$nin”查询事件集合