01、建立连接 :mongo
02、显示所有数据的列表 : show dbs
03、创建数据库[或切换到某个数据库] : use jtdb
(如果想把数据库创建成功,必须要插入一条数据,数据库中不能直接插入数据,只能往集合(cellections)中插入数据,
创建集合:db.createCollection("user")
04、查看当前数据库名称 : db
05-1、往user集合中插入数据 :db.user.insert({"name":"abc","age":"20"})
插入多条数据 :db.user.insertMany([{name:"孙悟空",age:20},{name:"沙悟净",age:22},{name:"猪八戒",age:18}])
db.user.insertMany(
[
{name:"孙悟空",age:20},
{name:"沙悟净",age:22},
{name:"猪八戒",age:18}
]
)
05-2、用 for 循环插入多条数据:跟 js 语法差不多
for(var i = 1; i <=100;i++) {
db.user.insert({name: "jty"+i,age:i})
}
删除:
06-1:删除数据库 : db.dropDatabase()
06-2:删除 user 集合 : db.user.drop()
06-3:删除性别为 male 的数据 : db.user.deleteMany({sex:"male"})
06-4、清空集合里的数据:db.user.deleteMany({})
也可以用 db.user.remove({}) 不过这个旧方法,官方不推荐了。
06-5、删除猪八戒和孙悟空的数据:db.user.deleteMany({$or:[{name:"猪八戒"},{name:"孙悟空"}]})
【注:删除集合或者清空集合里边的数据是不会释放空间的,可以参考 或 】
更改:
07-1、更改集合名词:
07-2、更改数据,只修改第一条
db.user.update(
{'name':'卷帘大将'},
{
$set:
{'name':'沙僧',age:25}
}
)
07-3、更改数据,修改多条,在后面添加 {multi:true}
db.user.update(
{'name':'沙僧'},
{
$set:
{'name':'卷帘大将',age:30}
},
{multi:true}
)
07-4、save() 方法更新一条数据,
如果 【_id 存在且相同】 的话,就执行更新;
如果 【_id 存在但不相同】 的话,就添加;
如果 不包含 _id 参数,则添加新数据。
db.user.save(
{
"_id" : ObjectId("5fbdcfdb836f5814526c25b9"),
"name" : "唐僧",
"age" : 94,
"sex" : "male"
}
)
查找:
08-1、查找所有:db.user.find()
08-2、格式化方式查看:db.user.find().pretty()
08-3、条件查找【查找小于20的】 :db.user.find({age:{$lt:20}})
- (>) 大于 - $gt
- (<) 小于 - $lt
- (>=) 大于等于 - $gte
- (<= ) 小于等于 - $lte
- ( != ) 不等于 - $ne
08-4、查看已存在的集合:show collections
08-5、查找name,并过滤掉name中相同的数据 : db.user.distinct("name")
08-6、查找age=22的数据 : db.user.find({"age"=22})
08-7 、查找猪八戒和孙悟空的数据:
db.user.find(
{
$or:
[
{name:"猪八戒"},
{name:"孙悟空"}
]
}
)
08-8 、查找 (age<=20且sex=male)或(age>20且sex=female)的数据:
db.user.find(
{
$or:
[
{age:{$lte:20},sex:"male"},
{age:{$gt:20},sex:"female"}
]
}
)
08-9、AND 和 OR 联用:在 age=>20 的范围中查找 【(name为沙僧,sex为male)或者 (sex为female)】的数据
db.user.find(
{
age:{$gte:20},
$or:
[
{name: "沙僧",sex:"male"},
{sex:"female"}
]
}
)
08-10、查找 【20<=age<=40 且不等于 30 ,sex为male 】 的数据 :
db.user.find(
{
age:{$gte:20,$lte:40,$ne:30},
sex:"male"
}
)
08-11、limit() 查询两条数据:db.user.find().limit(2)
limit() 中部加数字则代表查询所有数据。
08-12、skip() ,参数是数字类型,默认为0,表示跳过多少条数据;如果没有参数就代表跳过0条:
跳过前面两条,从第三条开始,展示到第六条。 db.user.find().limit(4).skip(2)
08-13、 skin().limit() 配合,做出分页效果。
var pageNumber = 1,pagesize = 10;
db.user.find().skip((pageNumber-1)*pagesize).limit(pagesize)
08-14、查看数据的总条数:db.user.count()
08-15、排序查看数据:1 表示升序,-1 表示降序
按年龄降序,显示整条数据: db.user.find().sort({age:-1})
按年龄降序,显示名称: db.user.find({},{name:1,_id:0}).sort({age:-1})
* skip(), limilt(), sort()三个放在一起执行的时候,执行的顺序是先 sort(), 然后是 skip(),最后是显示的 limit()。