首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >数组中的mongodb查询引用对象

数组中的mongodb查询引用对象
EN

Stack Overflow用户
提问于 2020-02-06 11:46:55
回答 1查看 43关注 0票数 0

我在nodejs里用猫鼬。我试图查询一些包含由引用对象组成的列表的字段。我创建了两个模式

导频

代码语言:javascript
复制
var PilotSchema = new mongoose.Schema({
    races: [{type: mongoose.Schema.Types.ObjectId, ref: 'Race'}],
});

种族

代码语言:javascript
复制
var RaceSchema = new mongoose.Schema({
    start_ms: Number,
});

这里我只写了相关的字段。

在竞赛模式中,我有一个键start_ms,它以毫秒表示比赛的开始日期,而在PilotSchema races字段中,我保存了对许多种族的引用。

我想做的是:

milliseconds

  • Retrive
  • 未来约会(my_date )所有在间隔( my_date - 2_hours my_date + 2_hours)

中没有赛跑的飞行员

我试着做一个例子来更好地解释。

我的日期:2020年2月23日- 12:00:00 (毫秒),

在导航仪领域,races,我有许多折射到RaceSchema和在每一个被折射的物体,这是开始比赛的时间。

现在,查询飞行员集合,我想检索所有飞行员,在他们的races字段中没有比赛期间开始(Feb 23 2020 - 10:00:00 - Feb 23 2020 - 14:00:00)

我试过使用这个查询,但没有工作

代码语言:javascript
复制
races: {$not:
  {$elemMatch: 
    {start_ms: 
      { "$gt" : min_time, "$lt" : max_time }
    }
  }
}

哪里

代码语言:javascript
复制
min_time, max_time = my_date - 2_hours, my_date + 2_hours

实际上,我不知道如何做到这一点,我看到为了在空隙中检索一个数字,我可以使用$gt$lt,但我不知道如何查询一个符合这种特定条件的引用对象数组。

EN

回答 1

Stack Overflow用户

发布于 2020-02-06 13:41:02

您必须为此编写一个聚合查询,从races中查找您的引用,并根据您的情况对它们进行筛选

代码语言:javascript
复制
 Pilot.aggregate([
            {
                $lookup:{
                    from:'races',
                    localField:'races',
                    foreignField:'_id',
                    as:'races'
                }
            },{
                $unwind:'$races'
            },
            {
                $match:{
                    'races.start_ms':{
                        "$gt" : min_time, "$lt" : max_time
                    }
                }
            },{
                $group:{
                    _id:'$_id',
                    name:{$first:'$name'}
                }
            }
        ]);

假设您的name模式中有pilot,则可以通过编写此查询获得所有此类pilots的列表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60094258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档