MongoDB查询shell命令 query (1) mongodb
查询: 设置显示那些字段
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 条