嗨,我正在用猫鼬创建一个对象,该对象的字段类型为object。该对象还有两个字段start_date和end_date。现在,我得到一个查询,该查询应过滤掉与start_date到end_date期间中的任何一个都不符合的记录。即(query_end_date <开始日期或query_start_date>结束日期)
type : [{
userId : {
type : mongoose.Schema.ObjectId,
required : true
},
startDate : {
type : Date,
required : true
},
endDate : {
type : Date,
required : true
}
}]
答案 0 :(得分:1)
您可以使用$gt
和$lt
运算符以及用于查询嵌套文档数组的语法进行查询:
async function Query(query_start_date, query_end_date){
try{
let users = await Model.find({ $or: [{ "field.startDate" : { $gt : query_end_date}} ,
{"field.endDate" : { $lt : query_start_date}} });
console.log(users);
} catch(err){
console.log("Error ", err);
}