數據結構
[
{
user_id: '5d319f73f938a00001160d36',
user_name: 'admin'
managers: [
{
user_id: '5d319f73f938a00001160d36'
}
],
created_time: '2019-08-01 08:00'
},
{
user_id: '5d319f73f938a00001160d36',
user_name: 'admin'
managers: [
{
user_id: '5d319f73f938a00001160d36'
}
],
created_time: '2019-08-01 08:00'
},
.....
]
sql語句
select user_name from user
where (user_id = '5d319f73f938a00001160d36' or managers.user_id in ['5d319f73f938a00001160d36']) and user_name like '%admin%'
ORDER BY created_time asc
limit 20,10
使用mongoDB查詢帶條件過濾、投影、排序、限制(分頁)的數據
db.users.find({
$and: [{
$or: [
{ user_id: '5d319f73f938a00001160d36' },
{
"managers.user_id": { $in: ["5d319f73f938a00001160d36"] }
}
]
},
{
$or: [{ user_name: { $regex: 'admin' } }]}
]
},
{
// 1包含 0除外
//"user_id": 0,
"user_name": 1
}).sort({
//1升序 0降序
"created_time": 1
}).limit(10) //分頁大小
.skip(20) //跳過數據量
使用mongoose查詢帶條件過濾、投影、排序、限制(分頁)的數據
User.find({
$and: [{
$or: [
{ user_id: '5d319f73f938a00001160d36' },
{
"managers.user_id": { $in: ["5d319f73f938a00001160d36"] }
}
]},
{
$or: [{ user_name: { $regex: '' } }]
}
]
}, {
user_name:1
}, {
skip: Number(20),
limit: Number(10),
sort: { created_time: 1 }
}, (err, data) => {
console.log(data)
})