我有一个集合"received"
,其中的文档包含一个包含年份和周详细信息的嵌入式文件。例如:
"YearANDWeek" : {
"Year" : 1908,
"Week" : 6
}
如果我想在1956年到第23周到2000年和第40周之间获取数据,我需要使用哪些查询?我可以使用$gte
和$lt
,但几周之间会有冲突。
答案 0 :(得分:0)
我这可以试试这个
db.recieved.find({$where:"((this.YearANDWeek.Year >= 1956 && this.YearANDWeek.Week >= 6) || (this.YearANDWeek.Year < 2000 && this.YearANDWeek.Year > 2000 && this.YearANDWeek.Week < 40)) && (this.YearANDWeek.Year >= 1956 && this.YearANDWeek.Year < 2000)"})
答案 1 :(得分:0)
我会使用以下查询。
db.received.find({$where:"((this.YearANDWeek.Year > 1956 && this.YearANDWeek.Year < 2000) || (this.YearANDWeek.Year == 1956 && this.YearANDWeek.Week >= 23) || (this.YearANDWeek.Year == 2000 && this.YearANDWeek.Week <= 40))"});