ADN查询 $and,大于 >,小于 $lt,等于 $eq,大于等于 $gte,小于等于 $lte,不等于 $ne。
db.club_activity.find({
$and: [{
_id: {
$gt: 100, //大于
$lt: 110, //小于
},
club_id: {
$eq: 10000026 //等于
},
create_time: {
$gte: 1575512594284 //大于等于
},
update_time: {
$lte: 1575512594284 //小于等于
},
state: {
$ne: 0 //不等于
}
}]
})
or查询注意括号,与上面and略有不同。(其实and也应该用下面这种括号[{ xxx1:{ } },{ xxx2:{ } }]的用法,只是[{xx1:{},xx2{}}] 是默认xx1和xx2是and关系)
*当sort,skip,limit一起使用时,无论其位置变化,总是先sort再skip,最后limit。
特殊需要可用管道aggregate
db.club_activity.find({
$or: [
{
start_time: {
$eq: 1575512520000
}
},
{
end_time: {
$ne: 1575612000001
}
}
]
}).skip(10).limit(5).sort({_id:-1}) //先降序排列,再跳过前10条,再取5条数据。当sort,skip,limit一起使用时,无论其位置变化,总是先sort再skip,最后limit。
//特殊需要可用管道aggregate
正则表达式查询,以t开始以t结尾的name
db.competition.find({
name:{
$regex:/^t.*t$/
}
})
以t开始或者以e开始的name
db.competition.find({
name:{
$in:[/^t/,/^e/]
}
})
不以t开始的name
db.competition.find({
name:{
$not:/^t/
}
})
不以t开始或者不以e开始的name
db.competition.find({
name:{
$nin:[/^t/,/^e/]
}
})