Linux下的MongoDB基础学习一:https://mp.csdn.net/postedit/86308439
一、查询语句
use 集合名称
db.集合名称.find()
但是用上面的语句输出结果后,会发现乱的一团糟。因此改用下面的语法会整齐很多:
db.post.find().pretty()
如果你想让 mongo shell 始终以 pretty 的方式显示返回数据,可以通过下面的指令实现:
echo "DBQuery.prototype._prettyShell = true" >> ~/.mongorc.js
二、and和or语句
1.MongoDB没有关系型数据库中的and语句,但是可使用:
db.集合名称.find({ key1: value1, key2: value2 }).pretty()
来实现and功能
2.or语句以 $or 作为关键词,有下面的用法:
db.集合名称.find(
{
$or: [
{key1: value1}, {key2:value2}
]
}
).pretty()
三、模式匹配
# 以 'start' 开头的匹配式:
{"name":\^start\}
# 以 'tail' 结尾的匹配式:
{"name":\tail^\}
四、习题(本题来源于实验楼https://www.shiyanlou.com/courses/running)
请新建一个学生表的集合,插入学生的信息,包括姓名、年龄、性别等,使用上述讲的查询方法查询性别为男的学生、年龄大于20的学生和姓张的学生。
参考代码:
> use practice
switched to db practice
> db.createCollection("student")
{ "ok" : 1 }
> db.student.insert([
{
"name":"黄豆",
"age":21,
"gender":"female"
},
{
"name":"周大壮",
"age":20,
"gender":"male"
},
{
"name":"张小妹",
"age":17,
"gender":"female"
}])
BulkWriteResult({
"writeErrors" : [ ],
"writeConcernErrors" : [ ],
"nInserted" : 3,
"nUpserted" : 0,
"nMatched" : 0,
"nModified" : 0,
"nRemoved" : 0,
"upserted" : [ ]
})
> db.student.find({"gender":"male"})
{
"_id" : ObjectId("5c3593ef5b79be0e0e096e55"),
"name" : "周大壮",
"age" : 20,
"gender" : "male"
}
> db.student.find({"age":{$gt:20}})
{
"_id" : ObjectId("5c3593ef5b79be0e096e5587"),
"name" : "黄豆",
"age" : 21,
"gender" : "female"
}
> db.student.find({"name":/^张/})
{
"_id" : ObjectId("5c3593ef5b79be0e096e5588"),
"name" : "张小妹",
"age" : 17,
"gender" : "female"
}
习题2地址:https://www.shiyanlou.com/courses/12/labs/2789/document