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" }

浙公网安备 33010602011771号