假设我有一个像这样的mongodb“ schema”:
offers: Schema = {
name: String,validityStart: Date,validityEnd: Date,customized: [
{
validityStart: Date,user: String
}
]
}
按词:这里有一个要约集合,在由validationStart和validityEnd指定的日期之间有效。每个报价都有一个子数组,该子数组定义用户可以“定制”此报价,即使用时间更长。
我可以查询所有可用的报价
Offer.find({ $and: [{ validityStart: { $lte: today } },{ validityEnd: { $gte: today } }] })
但是如果提供了“ 用户”,我需要创建一个查询,以显示所有报价并通过用户字段进行过滤以显示“定制的”报价。
一个显示我想要实现的目标的例子是:想象一下12月有一些报价
[
{
name: "Soccer Game 2020",validityStart: "2019-12-1",validityEnd: "2019-12-31"
},{
name: "Golf Equipment",validityEnd: "2019-12-31"
}
]
但是我让用户FOO成为足球比赛1个月的早鸟,我将拥有:
[
{
name: "Soccer Game 2020",validityEnd: "2019-12-31",customized:[
{
validityStart: "2019-11-1",validityEnd: "2019-11-30",user: "FOO"
}
]
},---
]
如何为所有用户返回“父”日期,但对于由定制数组指定的某些用户,返回其各自的日期呢?喜欢:
[
{
name: "Soccer Game 2020",validityStart: "2019-11-1",validityEnd: "2019-11-30"
},validityEnd: "2019-12-31"
}
]
我不知道如何创建这样的查询。
我可以更改架构,我处于开发的早期阶段,所以这不是问题。