mongoDB複雜查詢語法及mongoose複雜查詢方式

數據結構

[
    {
        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)
})

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章