MongoDB文档查询二

db.user_list.find({"child":{$exists:true}});   # 判断有没有child字段,true为有
{ "_id" : ObjectId("61a57d01ee212c0f351ca60f"), "name" : "laoli", "age" : 33, "sex" : true, "child" : { "name" : "xiaohuihui", "age" : 3 } }
> db.user_list.find({"child":{$exists:false}});  # false为没有child字段
{ "_id" : ObjectId("61a4dd1106540c0fb8f363ee"), "name" : "xiaolan", "age" : 16 }
{ "_id" : ObjectId("61a4dd1106540c0fb8f363ef"), "name" : "xiaoguang", "age" : 16 }
{ "_id" : ObjectId("61a57d5dee212c0f351ca613"), "name" : "xiaozhang", "age" : 18, "sex" : true }
{ "_id" : ObjectId("61a57d5fee212c0f351ca614"), "name" : "xiaozhang", "age" : 18, "sex" : true }
{ "_id" : ObjectId("61a58ddeee212c0f351ca615"), "name" : "xiaoming", "sex" : 0, "age" : "18" }
{ "_id" : ObjectId("61a58ddeee212c0f351ca616"), "name" : "xiaoming", "sex" : 1, "age" : "18" }
{ "_id" : ObjectId("61a58ddeee212c0f351ca617"), "name" : "xiaoming", "sex" : 1, "age" : "33" }
{ "_id" : ObjectId("61a58deaee212c0f351ca618"), "name" : "xiaoming", "sex" : 0, "age" : "33" }

 # 数据类型判断

user_list.find({"sex":{$type:"number"}});
{ "_id" : ObjectId("61a58ddeee212c0f351ca615"), "name" : "xiaoming", "sex" : 0, "age" : "18" }
{ "_id" : ObjectId("61a58ddeee212c0f351ca616"), "name" : "xiaoming", "sex" : 1, "age" : "18" }
{ "_id" : ObjectId("61a58ddeee212c0f351ca617"), "name" : "xiaoming", "sex" : 1, "age" : "33" }
{ "_id" : ObjectId("61a58deaee212c0f351ca618"), "name" : "xiaoming", "sex" : 0, "age" : "33" }
> db.user_list.find({"age":{$type:"string"}});
{ "_id" : ObjectId("61a58ddeee212c0f351ca615"), "name" : "xiaoming", "sex" : 0, "age" : "18" }
{ "_id" : ObjectId("61a58ddeee212c0f351ca616"), "name" : "xiaoming", "sex" : 1, "age" : "18" }
{ "_id" : ObjectId("61a58ddeee212c0f351ca617"), "name" : "xiaoming", "sex" : 1, "age" : "33" }
{ "_id" : ObjectId("61a58deaee212c0f351ca618"), "name" : "xiaoming", "sex" : 0, "age" : "33" }

# 正则匹配手机号码

> db.user_list.find({"mobile":{$regex: /1[3-9]\d{9}/ }});
{ "_id" : ObjectId("61a59226ee212c0f351ca619"), "name" : "xiaoming", "sex" : 0, "age" : "18", "mobile" : "13301234568" }
{ "_id" : ObjectId("61a59226ee212c0f351ca61b"), "name" : "xiaoming", "sex" : 1, "age" : "33", "mobile" : "15001234568" }
{ "_id" : ObjectId("61a59228ee212c0f351ca61c"), "name" : "xiaoming", "sex" : 0, "age" : "33", "mobile" : "15001234568" }
>

# 取余查询

> db.user_list.find({"age":{$mod: [3,0] }});  # 3的倍数
{ "_id" : ObjectId("61a57d01ee212c0f351ca60f"), "name" : "laoli", "age" : 33, "sex" : true, "child" : { "name" : "xiaohuihui", "age" : 3 } }
{ "_id" : ObjectId("61a57d5dee212c0f351ca613"), "name" : "xiaozhang", "age" : 18, "sex" : true }
{ "_id" : ObjectId("61a57d5fee212c0f351ca614"), "name" : "xiaozhang", "age" : 18, "sex" : true }
> db.user_list.find({"age":{$mod: [4,0] }});  # 4的倍数
{ "_id" : ObjectId("61a4dd1106540c0fb8f363ee"), "name" : "xiaolan", "age" : 16 }
{ "_id" : ObjectId("61a4dd1106540c0fb8f363ef"), "name" : "xiaoguang", "age" : 16 }

# 自定义条件函数查询

> db.user_list.find({$where:"this.name=='xiaoming' && this.age>30"});
{ "_id" : ObjectId("61a58ddeee212c0f351ca617"), "name" : "xiaoming", "sex" : 1, "age" : "33" }
{ "_id" : ObjectId("61a58deaee212c0f351ca618"), "name" : "xiaoming", "sex" : 0, "age" : "33" }
{ "_id" : ObjectId("61a59226ee212c0f351ca61b"), "name" : "xiaoming", "sex" : 1, "age" : "33", "mobile" : "15001234568" }
{ "_id" : ObjectId("61a59228ee212c0f351ca61c"), "name" : "xiaoming", "sex" : 0, "age" : "33", "mobile" : "15001234568" }

#  降序排序,不加-,默认升序排序 

 db.user_list.find().sort({"age":-1});
{ "_id" : ObjectId("61a58ddeee212c0f351ca617"), "name" : "xiaoming", "sex" : 1, "age" : "33" }
{ "_id" : ObjectId("61a58deaee212c0f351ca618"), "name" : "xiaoming", "sex" : 0, "age" : "33" }
{ "_id" : ObjectId("61a59226ee212c0f351ca61b"), "name" : "xiaoming", "sex" : 1, "age" : "33", "mobile" : "15001234568" }
{ "_id" : ObjectId("61a59228ee212c0f351ca61c"), "name" : "xiaoming", "sex" : 0, "age" : "33", "mobile" : "15001234568" }
{ "_id" : ObjectId("61a58ddeee212c0f351ca615"), "name" : "xiaoming", "sex" : 0, "age" : "18" }
{ "_id" : ObjectId("61a58ddeee212c0f351ca616"), "name" : "xiaoming", "sex" : 1, "age" : "18" }
{ "_id" : ObjectId("61a59226ee212c0f351ca619"), "name" : "xiaoming", "sex" : 0, "age" : "18", "mobile" : "13301234568" }
.....

# 字段投影

> db.user_list.find({"mobile":{$regex:/^133\d{8}$/}},{"_id":0}).sort({"mobile":-1})
    { "name" : "xiaoming", "mobile" : "13333355678" }
    { "name" : "xiaoming", "mobile" : "13333345678" }
    { "name" : "xiaoming", "mobile" : "13312345678" }

> db.user_list.find({"mobile":{$regex:/^133\d{8}$/}},{"_id":0,"name":0}).sort({"mobile":-1})
    { "mobile" : "13333355678" }
    { "mobile" : "13333345678" }
    { "mobile" : "13312345678" }

> db.user_list.find({"mobile":{$regex:/^133\d{8}$/}},{"name":1}).sort({"mobile":-1})
    { "_id" : ObjectId("60502fb7d5c7a55cc95c1cc4"), "name" : "xiaoming" }
    { "_id" : ObjectId("60502fb4d5c7a55cc95c1cc3"), "name" : "xiaoming" }
    { "_id" : ObjectId("60502fb1d5c7a55cc95c1cc2"), "name" : "xiaoming" }

> db.user_list.find({"mobile":{$regex:/^133\d{8}$/}},{"name":1,"_id":0}).sort({"mobile":-1})
    { "name" : "xiaoming" }
    { "name" : "xiaoming" }
    { "name" : "xiaoming" }

 # 限制查询条数

> db.user_list.find({},{"_id":0,"name":1,"age":1}).sort({"age":1}).limit(5);
{ "name" : "xiaolan", "age" : 16 }
{ "name" : "xiaoguang", "age" : 16 }
{ "name" : "xiaozhang", "age" : 18 }
{ "name" : "xiaozhang", "age" : 18 }
{ "name" : "laoli", "age" : 33 }
> db.user_list.find({},{"_id":0,"name":1,"age":1}).sort({"age":1}).limit(5).skip(5) #跳过前5条
{ "name" : "xiaoming", "age" : "18" }
{ "name" : "xiaoming", "age" : "18" }
{ "name" : "xiaoming", "age" : "18" }
{ "name" : "xiaoming", "age" : "18" }
{ "name" : "xiaoming", "age" : "33" }

 

posted @ 2021-11-30 14:27  urls  阅读(56)  评论(0编辑  收藏  举报