//MongoDB shell version v4.0.10
//使用mydb 这个数据库
use mydb;
//查看当前使用的是哪一个数据库
db;
//创建集合
db.createCollection("mycollection");
//删除集合
db.mycollection.drop();
//使用insert新增一条数据
db.mycollection.insert({name:"yyc1",age:21,mail:"881@qq.com"});
//使用insertOne新增一条数据
db.mycollection.insertOne({name:"yyc2",age:22,mail:"882@qq.com"});
//使用save新增一条数据
db.mycollection.save({name:"yyc3",age:23,mail:"883@qq.com"});
//使用insertMany新增多条数据
db.mycollection.insertMany([
{name:"yyc4",age:24,mail:"883@qq.com"},
{name:"yyc5",age:25,mail:"883@qq.com"},
{name:"yyc6",age:26,mail:"883@qq.com"}
])
//insert和save的区别
//insertXXX 每执行一次就会往数据库插入一次数据.运行多少次插入多少次,如果显示的执行_id的话,而且数据库已经存在了该_id,那么将会报错
//save 方法 如果指定了 _id ,当数据库中没有的时候,会直接新增,如果有的话,相当于根据该_id 进行更新数据,如果没指定,也是每次执行都进行新增
//使用update修改数据
db.mycollection.update({name:"yyc1"},{$set:{name:"yangyongcui"}});
//使用updateOne 修改数据
db.mycollection.updateOne({name:"yangyongcui"},{$set:{name:"yyc1"}});
//使用updateMany修改数据 将年龄大于20 的数据的name 改成yangyongcui1
db.mycollection.updateMany(
{age:{$gte:20}},{$set:{name:"yangyongcui1"}}
);
//使用findAndModify更新能够返回旧的数据 前面是query 条件,后面是update 语句 只能修改一条,如果加上new:true 这个参数则返回更新后的新数据,默认为false
db.mycollection.findAndModify({query:{name:"yyc"},update:{$set:{name:"newyyc"}},new:true});
//使用findOneAndUpdate修改并返回旧数据 前面是条件,后面是update 语句 只能修改一条
db.mycollection.findOneAndUpdate({name:"yyc2"}, {$set:{name:"newyyc"}});
//使用findOneAndReplace修改并返回旧数据 第一个是条件,第二个是新的值 只能修改一条
db.mycollection.findOneAndReplace({name:"yyc3"}, {name:"newyyc"});
//使用deleteOne删除 数据 只删除一条,即使有多个满足该条件的数据,也只是删除一条数据
db.mycollection.deleteOne({name:"yangyongcui1"});
//使用deleteMany 删除数据 满足条件的都将会删除,如果什么条件也不写,将会把集合中的数据全部删除掉
db.mycollection.deleteMany({});
//使用deleteMany删除年龄大于25 的数据
db.mycollection.deleteMany({age:{$gte:25}})
//使用findOneAndDelete 可以返回刚刚删除的数据
db.mycollection.findOneAndDelete({name:"yyyyyyyy"});
//使用find 查询数据 查询所有
db.mycollection.find();
//使用find 查询数据 条件查询
db.mycollection.find({name:"yyc1"});
//只返回复合条件的第一条数据
db.mycollection.findOne({age:{$gte:20}});
// in查询
db.mycollection.find({name:{$in:["yyc1","yyc2"]}});
//and 查询
db.mycollection.find({$and:[{name:"yyc1"},{age:25}]});
//or 查询
db.mycollection.find({$or:[{name:"yyc1"},{name:"yyc2"}]});
//排序sort 整数是正序 负数是倒序 通过年龄正序排列
db.mycollection.find({}).sort({"age":1})
//limit 分页 skip
//每页获取2条数据 读取第二页
db.mycollection.find({}).limit(2).skip(2);
// 指定查询某些字段,例如只是获取name 字段 注意: _id 不显式的指定为0 的话,会默认查出来
db.mycollection.find({},{_id:0,name:1})
//创建索引
db.mycollection.createIndex({name:1})