请通过浏览器功能收藏网页

MongoDB查询shell命令 query (1) mongodb

发布时间:2018-09-06 09:35:02  作者:本站编辑  来源:本站原创  浏览次数:
我有话说 | 分享 |
www.javainfo.com.cn 上干货 欢迎收藏

查询: 设置显示那些字段

db.user.find();

{ "_id" : ObjectId("5b8660e8295c86cc5adba7cb"), "name" : "wj", "age" : 44 }

{ "_id" : ObjectId("5b8c8ae398cd08437710c6f9"), "name" : "ggg", "age" : 55 }

{ "_id" : ObjectId("5b8ca98a98cd08437710c6fa"), "name" : "jjj", "age" : 54, "addr" : "河北大街333号" }

{ "_id" : ObjectId("5b8caa8d98cd08437710c6fb"), "name" : "wwwkjfd", "age" : 22 }

{ "_id" : ObjectId("5b8caa9d98cd08437710c6fc"), "name" : "w543rr", "age" : 32 }

{ "_id" : ObjectId("5b8cc36198cd08437710c6fd"), "name" : "wj", "age" : 33, "addr" : "unit states" }

{ "_id" : ObjectId("5b8cc3d798cd08437710c6fe"), "name" : "wj555", "age" : 33, "addr" : "unit states" }

{ "_id" : ObjectId("5b8cc40798cd08437710c6ff"), "name" : "wj878ee", "age" : 33, "addr" : "unit states" }

{ "_id" : ObjectId("5b8cc40798cd08437710c700"), "name" : "wj", "age" : 67, "addr" : "russain", "log" : true }

{ "_id" : ObjectId("5b8f33a9dfb2a160dbb01a84"), "name" : "newuser0", "age" : 23, "addr" : "china lubei" }

{ "_id" : ObjectId("5b8f33b5dfb2a160dbb01a85"), "name" : "newuser", "age" : 88, "addr" : "china tangshan " }

{ "_id" : ObjectId("5b8f33b5dfb2a160dbb01a86"), "name" : "newuser2", "age" : 22, "addr" : "china qianxi " }

{ "_id" : ObjectId("5b8f3913dfb2a160dbb01a88"), "name" : "1111", "age" : 44, "addr" : "china" }

{ "_id" : ObjectId("5b8f392adfb2a160dbb01a89"), "name" : "2111", "age" : 44, "addr" : "china tangshan" }

{ "_id" : ObjectId("5b8f393fdfb2a160dbb01a8a"), "name" : "3111", "age" : 32, "addr" : "china tangshan lubei" }

{ "_id" : ObjectId("5b8f3950dfb2a160dbb01a8b"), "name" : "www", "age" : 22, "addr" : "china tangshan lubei" }

显示name age 不显示 _id 主键值

> db.user.find({},{name:1,age:1,_id:0});

{ "name" : "wj", "age" : 44 }

{ "name" : "ggg", "age" : 55 }

{ "name" : "jjj", "age" : 54 }

{ "name" : "wwwkjfd", "age" : 22 }

{ "name" : "w543rr", "age" : 32 }

{ "name" : "wj", "age" : 33 }

{ "name" : "wj555", "age" : 33 }

{ "name" : "wj878ee", "age" : 33 }

{ "name" : "wj", "age" : 67 }

{ "name" : "newuser0", "age" : 23 }

{ "name" : "newuser", "age" : 88 }

{ "name" : "newuser2", "age" : 22 }

{ "name" : "1111", "age" : 44 }

{ "name" : "2111", "age" : 44 }

{ "name" : "3111", "age" : 32 }

{ "name" : "www", "age" : 22 }

逻辑运算符的应用

比较操作:$lt 小于 ,$lte 小于等于 ,$gt 大于, $gte 大于等于 , $ne  不等于

> db.user.find({"age":{$lt:40}},{name:1,age:1,_id:0});

{ "name" : "wwwkjfd", "age" : 22 }

{ "name" : "w543rr", "age" : 32 }

{ "name" : "wj", "age" : 33 }

{ "name" : "wj555", "age" : 33 }

{ "name" : "wj878ee", "age" : 33 }

{ "name" : "newuser0", "age" : 23 }

{ "name" : "newuser2", "age" : 22 }

{ "name" : "3111", "age" : 32 }

{ "name" : "www", "age" : 22 }

> db.user.find({"age":{$gt:40}},{name:1,age:1,_id:0});

{ "name" : "wj", "age" : 44 }

{ "name" : "ggg", "age" : 55 }

{ "name" : "jjj", "age" : 54 }

{ "name" : "wj", "age" : 67 }

{ "name" : "newuser", "age" : 88 }

{ "name" : "1111", "age" : 44 }

{ "name" : "2111", "age" : 44 }

> db.user.find({"age":{$gt:40,$lt:60}},{name:1,age:1,_id:0});

{ "name" : "wj", "age" : 44 }

{ "name" : "ggg", "age" : 55 }

{ "name" : "jjj", "age" : 54 }

{ "name" : "1111", "age" : 44 }

{ "name" : "2111", "age" : 44 }

查询年龄大于40 且小于60的数据

db.user.find({"age":{$gt:40,$lt:60}},{name:1,age:1,_id:0});

{ "name" : "wj", "age" : 44 }

{ "name" : "ggg", "age" : 55 }

{ "name" : "jjj", "age" : 54 }

{ "name" : "1111", "age" : 44 }

{ "name" : "2111", "age" : 44 }

查询年龄大于40且小于60,且年龄等于44的数据

> db.user.find({"age":{$gt:40,$lt:60},age:44},{name:1,age:1,_id:0});

{ "name" : "wj", "age" : 44 }

{ "name" : "1111", "age" : 44 }

{ "name" : "2111", "age" : 44 }

查询年龄大于40且小于60,且年龄等于44的数据 (与上面的一样 只是采用了 and逻辑符, : 为等于逻辑

> db.user.find({$and:[{"age":{$gt:40,$lt:60}},{age:44}]},{name:1,age:1,_id:0});

{ "name" : "wj", "age" : 44 }

{ "name" : "1111", "age" : 44 }

{ "name" : "2111", "age" : 44 }

$and包含多个条件,他们之间为and的关系

 db.temp.find();

{ "_id" : ObjectId("5b8f3974dfb2a160dbb01a8c"), "name" : "www", "age" : 22, "addr" : "china tangshan lubei" }

{ "_id" : ObjectId("5b8f3983dfb2a160dbb01a8d"), "name" : "3111", "age" : 32, "addr" : "china tangshan lubei" }

{ "_id" : ObjectId("5b8f61b0914cf734f786d9e0"), "addr" : "666644rrrr" }

{ "_id" : ObjectId("5b8f6a75914cf734f786d9e1"), "item" : "boo4k", "qty" : 11, "fenshu" : 98 }

{ "_id" : ObjectId("5b8f982e4275a0cef716d145"), "name" : "www", "age" : 52, "addr" : "china" }

查询年龄大于20且姓名为www的数据

> db.temp.find({$and:[{name:"www"},{age:{$gt:20}}]});

{ "_id" : ObjectId("5b8f3974dfb2a160dbb01a8c"), "name" : "www", "age" : 22, "addr" : "china tangshan lubei" }

{ "_id" : ObjectId("5b8f982e4275a0cef716d145"), "name" : "www", "age" : 52, "addr" : "china" }


$or :包含多个条件,他们之间为or的关系 ,$nor相当于or取反

db.temp.find();

{ "_id" : ObjectId("5b8f3974dfb2a160dbb01a8c"), "name" : "www", "age" : 22, "addr" : "china tangshan lubei" }

{ "_id" : ObjectId("5b8f3983dfb2a160dbb01a8d"), "name" : "3111", "age" : 32, "addr" : "china tangshan lubei" }

{ "_id" : ObjectId("5b8f61b0914cf734f786d9e0"), "addr" : "666644rrrr" }

{ "_id" : ObjectId("5b8f6a75914cf734f786d9e1"), "item" : "boo4k", "qty" : 11, "fenshu" : 98 }

{ "_id" : ObjectId("5b8f982e4275a0cef716d145"), "name" : "www", "age" : 52, "addr" : "china" }

{ "_id" : ObjectId("5b8f997f4275a0cef716d146"), "name" : "ggg", "age" : 15 }

{ "_id" : ObjectId("5b8f99874275a0cef716d147"), "name" : "www", "age" : 15 }

db.temp.find({$or:[{name:"www"},{age:{$gt:20}}]});

{ "_id" : ObjectId("5b8f3974dfb2a160dbb01a8c"), "name" : "www", "age" : 22, "addr" : "china tangshan lubei" }

{ "_id" : ObjectId("5b8f3983dfb2a160dbb01a8d"), "name" : "3111", "age" : 32, "addr" : "china tangshan lubei" }

{ "_id" : ObjectId("5b8f982e4275a0cef716d145"), "name" : "www", "age" : 52, "addr" : "china" }

{ "_id" : ObjectId("5b8f99874275a0cef716d147"), "name" : "www", "age" : 15 }

$nor:都不等于的文档, 后面必须是 数组格式

> db.temp.find();

{ "_id" : ObjectId("5b8f3974dfb2a160dbb01a8c"), "name" : "www", "age" : 22, "addr" : "china tangshan lubei" }

{ "_id" : ObjectId("5b8f3983dfb2a160dbb01a8d"), "name" : "3111", "age" : 32, "addr" : "china tangshan lubei" }

{ "_id" : ObjectId("5b8f61b0914cf734f786d9e0"), "addr" : "666644rrrr" }

{ "_id" : ObjectId("5b8f6a75914cf734f786d9e1"), "item" : "boo4k", "qty" : 11, "fenshu" : 98 }

{ "_id" : ObjectId("5b8f982e4275a0cef716d145"), "name" : "www", "age" : 52, "addr" : "china" }

{ "_id" : ObjectId("5b8f997f4275a0cef716d146"), "name" : "ggg", "age" : 15 }

{ "_id" : ObjectId("5b8f99874275a0cef716d147"), "name" : "www", "age" : 15 }

> db.temp.find({$nor:[{name:"www"},{age:{$gt:20}}]});

{ "_id" : ObjectId("5b8f61b0914cf734f786d9e0"), "addr" : "666644rrrr" }

{ "_id" : ObjectId("5b8f6a75914cf734f786d9e1"), "item" : "boo4k", "qty" : 11, "fenshu" : 98 }

{ "_id" : ObjectId("5b8f997f4275a0cef716d146"), "name" : "ggg", "age" : 15 }

db.temp.find({$nor:{age:15}});

Error: error: {

"ok" : 0,

"errmsg" : "$nor must be an array",

"code" : 2,

"codeName" : "BadValue"

}

 db.temp.find({$nor:[{age:15}]});    必须是数组格式, 我们可用查到 age不等于15的文档列表

{ "_id" : ObjectId("5b8f3974dfb2a160dbb01a8c"), "name" : "www", "age" : 22, "addr" : "china tangshan lubei" }

{ "_id" : ObjectId("5b8f3983dfb2a160dbb01a8d"), "name" : "3111", "age" : 32, "addr" : "china tangshan lubei" }

{ "_id" : ObjectId("5b8f61b0914cf734f786d9e0"), "addr" : "666644rrrr" }

{ "_id" : ObjectId("5b8f6a75914cf734f786d9e1"), "item" : "boo4k", "qty" : 11, "fenshu" : 98 }

{ "_id" : ObjectId("5b8f982e4275a0cef716d145"), "name" : "www", "age" : 52, "addr" : "china" }

$not:用作其他条件之上,取反     后面可用跟 正则表达式   或  文档对象

   db.temp.find({age:{$not:15}});    这样使用是错误的

Error: error: {

"ok" : 0,

"errmsg" : "$not needs a regex or a document",

"code" : 2,

"codeName" : "BadValue"

}

> db.temp.find({age:{$not:/15/}});

{ "_id" : ObjectId("5b8f3974dfb2a160dbb01a8c"), "name" : "www", "age" : 22, "addr" : "china tangshan lubei" }

{ "_id" : ObjectId("5b8f3983dfb2a160dbb01a8d"), "name" : "3111", "age" : 32, "addr" : "china tangshan lubei" }

{ "_id" : ObjectId("5b8f61b0914cf734f786d9e0"), "addr" : "666644rrrr" }

{ "_id" : ObjectId("5b8f6a75914cf734f786d9e1"), "item" : "boo4k", "qty" : 11, "fenshu" : 98 }

{ "_id" : ObjectId("5b8f982e4275a0cef716d145"), "name" : "www", "age" : 52, "addr" : "china" }

{ "_id" : ObjectId("5b8f997f4275a0cef716d146"), "name" : "ggg", "age" : 15 }

{ "_id" : ObjectId("5b8f99874275a0cef716d147"), "name" : "www", "age" : 15 }

> db.temp.find({age:{$not:{$lt:30}}});    读取年龄不小于30的文档, 没有age字段的也会被查出来

{ "_id" : ObjectId("5b8f3983dfb2a160dbb01a8d"), "name" : "3111", "age" : 32, "addr" : "china tangshan lubei" }

{ "_id" : ObjectId("5b8f61b0914cf734f786d9e0"), "addr" : "666644rrrr" }

{ "_id" : ObjectId("5b8f6a75914cf734f786d9e1"), "item" : "boo4k", "qty" : 11, "fenshu" : 98 }

{ "_id" : ObjectId("5b8f982e4275a0cef716d145"), "name" : "www", "age" : 52, "addr" : "china" }

获取age不是15的记录,  我们可用使用nor实现

> db.temp.find({name:{$not:/15/}});   not 对于 数字格式的 不等于判断 不好使

{ "_id" : ObjectId("5b8f3974dfb2a160dbb01a8c"), "name" : "www", "age" : 22, "addr" : "china tangshan lubei" }

{ "_id" : ObjectId("5b8f3983dfb2a160dbb01a8d"), "name" : "3111", "age" : 32, "addr" : "china tangshan lubei" }

{ "_id" : ObjectId("5b8f61b0914cf734f786d9e0"), "addr" : "666644rrrr" }

{ "_id" : ObjectId("5b8f6a75914cf734f786d9e1"), "item" : "boo4k", "qty" : 11, "fenshu" : 98 }

{ "_id" : ObjectId("5b8f982e4275a0cef716d145"), "name" : "www", "age" : 52, "addr" : "china" }

{ "_id" : ObjectId("5b8f997f4275a0cef716d146"), "name" : "ggg", "age" : 15 }

{ "_id" : ObjectId("5b8f99874275a0cef716d147"), "name" : "www", "age" : 15 }

获取名字不是 www的文档列表

> db.temp.find({name:{$not:/www/}});  not对于字符格式的数据  不等于判断  挺好使的

{ "_id" : ObjectId("5b8f3983dfb2a160dbb01a8d"), "name" : "3111", "age" : 32, "addr" : "china tangshan lubei" }

{ "_id" : ObjectId("5b8f61b0914cf734f786d9e0"), "addr" : "666644rrrr" }

{ "_id" : ObjectId("5b8f6a75914cf734f786d9e1"), "item" : "boo4k", "qty" : 11, "fenshu" : 98 }

{ "_id" : ObjectId("5b8f997f4275a0cef716d146"), "name" : "ggg", "age" : 15 }

   

$mod:将查询的值除以第一个给定的值,如果余数等于等二个值则匹配成功

db.temp.find({age:{$mod:[10,2]}});

{ "_id" : ObjectId("5b8f3974dfb2a160dbb01a8c"), "name" : "www", "age" : 22, "addr" : "china tangshan lubei" }

{ "_id" : ObjectId("5b8f3983dfb2a160dbb01a8d"), "name" : "3111", "age" : 32, "addr" : "china tangshan lubei" }

{ "_id" : ObjectId("5b8f982e4275a0cef716d145"), "name" : "www", "age" : 52, "addr" : "china" }


$in :查询一个键的多个值,只要键匹配其中一个即可 , $nin为不包含

db.temp.find({age:{$in:[22,23,30]}});

       { "_id" : ObjectId("5b8f3974dfb2a160dbb01a8c"), "name" : "www", "age" : 22, "addr" : "china tangshan lubei" }

$all:键需要匹配所有的值

 > db.temp.find();

{ "_id" : ObjectId("5b8f3974dfb2a160dbb01a8c"), "name" : "www", "age" : 22, "addr" : "china tangshan lubei" }

{ "_id" : ObjectId("5b8f3983dfb2a160dbb01a8d"), "name" : "3111", "age" : 32, "addr" : "china tangshan lubei" }

{ "_id" : ObjectId("5b8f61b0914cf734f786d9e0"), "addr" : "666644rrrr" }

{ "_id" : ObjectId("5b8f6a75914cf734f786d9e1"), "item" : "boo4k", "qty" : 11, "fenshu" : 98 }

{ "_id" : ObjectId("5b8f982e4275a0cef716d145"), "name" : "www", "age" : 52, "addr" : "china" }

{ "_id" : ObjectId("5b8f997f4275a0cef716d146"), "name" : "ggg", "age" : 15 }

{ "_id" : ObjectId("5b8f99874275a0cef716d147"), "name" : "www", "age" : 15 }

{ "_id" : ObjectId("5b8fa0d4e23974df0f5530eb"), "fenshu" : [ 44, 55, 22, 88 ] }  

有其中一个值的文档列表

db.temp.find({fenshu:{$in:[22,23]}});  

{ "_id" : ObjectId("5b8fa0d4e23974df0f5530eb"), "fenshu" : [ 44, 55, 22, 88 ] }

分数中有 22 与 23 的 文档列表

> db.temp.find({fenshu:{$all:[22,23]}});   

    分数中有22,88,55的文档列表  ,无顺序关系

> db.temp.find({fenshu:{$all:[22,88,55]}});

{ "_id" : ObjectId("5b8fa0d4e23974df0f5530eb"), "fenshu" : [ 44, 55, 22, 88 ] }

$exists:检查某个键是否存在,1表示存在,0表示不存在

    查找有分数字段的文档列表

 db.temp.find({fenshu:{$exists:1}});

{ "_id" : ObjectId("5b8f6a75914cf734f786d9e1"), "item" : "boo4k", "qty" : 11, "fenshu" : 98 }

{ "_id" : ObjectId("5b8fa0d4e23974df0f5530eb"), "fenshu" : [ 44, 55, 22, 88 ] }

null类型:不仅能匹配键的值为null,还匹配键不存在的情况

db.user.find();

{ "_id" : ObjectId("5b8660e8295c86cc5adba7cb"), "name" : "wj", "age" : 44 }

{ "_id" : ObjectId("5b8c8ae398cd08437710c6f9"), "name" : "ggg", "age" : 55 }

{ "_id" : ObjectId("5b8ca98a98cd08437710c6fa"), "name" : "jjj", "age" : 54, "addr" : "河北大街333号" }

{ "_id" : ObjectId("5b8caa8d98cd08437710c6fb"), "name" : "wwwkjfd", "age" : 22 }

{ "_id" : ObjectId("5b8caa9d98cd08437710c6fc"), "name" : "w543rr", "age" : 32 }

{ "_id" : ObjectId("5b8cc36198cd08437710c6fd"), "name" : "wj", "age" : 33, "addr" : "unit states" }

{ "_id" : ObjectId("5b8cc3d798cd08437710c6fe"), "name" : "wj555", "age" : 33, "addr" : "unit states" }

{ "_id" : ObjectId("5b8cc40798cd08437710c6ff"), "name" : "wj878ee", "age" : 33, "addr" : "unit states" }

{ "_id" : ObjectId("5b8cc40798cd08437710c700"), "name" : "wj", "age" : 67, "addr" : "russain", "log" : true }

{ "_id" : ObjectId("5b8f33a9dfb2a160dbb01a84"), "name" : "newuser0", "age" : 23, "addr" : "china lubei" }

{ "_id" : ObjectId("5b8f33b5dfb2a160dbb01a85"), "name" : "newuser", "age" : 88, "addr" : "china tangshan " }

{ "_id" : ObjectId("5b8f33b5dfb2a160dbb01a86"), "name" : "newuser2", "age" : 22, "addr" : "china qianxi " }

{ "_id" : ObjectId("5b8f3913dfb2a160dbb01a88"), "name" : "1111", "age" : 44, "addr" : "china" }

{ "_id" : ObjectId("5b8f392adfb2a160dbb01a89"), "name" : "2111", "age" : 44, "addr" : "china tangshan" }

{ "_id" : ObjectId("5b8f393fdfb2a160dbb01a8a"), "name" : "3111", "age" : 32, "addr" : "china tangshan lubei" }

{ "_id" : ObjectId("5b8f3950dfb2a160dbb01a8b"), "name" : "www", "age" : 22, "addr" : "china tangshan lubei" }

查找出 没有 addr 属性的文档列表

> db.user.find({addr:null});     

{ "_id" : ObjectId("5b8660e8295c86cc5adba7cb"), "name" : "wj", "age" : 44 }

{ "_id" : ObjectId("5b8c8ae398cd08437710c6f9"), "name" : "ggg", "age" : 55 }

{ "_id" : ObjectId("5b8caa8d98cd08437710c6fb"), "name" : "wwwkjfd", "age" : 22 }

{ "_id" : ObjectId("5b8caa9d98cd08437710c6fc"), "name" : "w543rr", "age" : 32 }


如有疑问 请留言 欢迎提供建议
  • 0

    开心

  • 0

    板砖

  • 0

    感动

  • 0

    有用

  • 0

    疑问

  • 0

    难过

  • 0

    无聊

  • 0

    震惊

评论已有 0