gpt4 book ai didi

javascript - Mongoose 如何在数组中搜索数组

转载 作者:行者123 更新时间:2023-12-04 07:47:26 25 4
gpt4 key购买 nike

我有带日期的数组。用户传递 2 个日期:开始和停止。我用这些日期之间的日期生成数组。然后我必须检查我的模型,如果来自数组的任何日期在该模型中。如果数组中没有日期(或日期),那么我想要这辆车,否则 - 我不想要它。如何编写 whis mongoose 查询?
我有这个模型:


const CarSchema = mongoose.Schema({
mark:{
type: String,
required: true,},
model:{
type: String,
required: true,},
price:{
type: Number,
required: true,},
available: {
type: Boolean,
required: true,},
reserved:{
type:[Date],

},
pic_1:{
type:String,
required:true,
},
pic_2:{
type:String,
required:true,
},


},
{ collection: 'cars' }
)
假设用户传递了 2 个日期 12-02-2021 16-02-2021 .我的方法生成包含所有日期之间的数组 array = [12-02-2012,13-02-2021,14-02-2021 ... 16-02-2021]在我的模型中,我有字段 reserved - 这也是数组。如何从数据库中只取那些字段 reserved不包含来自 array 的任何日期? Car.find({??what here??});提前致谢!

最佳答案

演示 - https://mongoplayground.net/p/HpliQ8Q70uM
使用 $nin for - 不包含数组中的任何日期

$nin selects the documents where:

the field value is not in the specified array or the field does notexist.

db.collection.find({
reserved: {
$nin: [
"12-02-2021",
"12-04-2021"
]
}
})

演示 - https://mongoplayground.net/p/ewG_6dQ1UaL
使用 $in如果你想匹配数组中的值

The $in operator selects the documents where the value of a field equals any value in the specified array.

db.collection.find({
reserved: {
$in: [
"12-02-2021", "12-04-2021"
]
}
})

关于javascript - Mongoose 如何在数组中搜索数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67143876/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com