MongoDB学习
tips:
MongoDB是一个非关系型(NOSql=Not Only Sql)数据库,它没有关系型数据库MySQL和Oracle中的表与表相连,必须把字段存在表里,MongoDB使用方法去增删改查,且一个名字对应一些值,没有类型限制,像键值对和json串一样。
MongoDB层级分为 数据库>集合>文档 且在默认不设定主键时候自动生成ObjectId,由时间戳生成主键
在增删改查方法中都分比如insertOne()与insertMany()方法,其区别就是增删改查出来的第一条还是查出来的所有,如果默认只使用inset(),则默认为修改一个。
use <数据库名>;//使用某个数据库
show collections;//查看数据库下的所有集合
show dbs;查看所有数据库以及容量
db.<数据库名>.find(); //查询数据库下的集合和文档
db.<数据库名>.insert();//向数据库中插入数据
db.<数据库名>.update();//更新数据 语法是先查询到数据 再更新
db.<数据库名>.remove();//删除数据
$gt //大于
$lt //小于
.limit(a)//设置显示数据的条数 a为10 则只显示10
.skip(a)//设置跳过显示的数据条数 a为10 则跳过10条数据显示
db.<数据库名>.find().skip(10).limit(10)//查询数据库下跳过10条数据后10条数据
db.<数据库名>.update(
{name:'ok'},{$set{name:'dd'}}//第一个大括号是查询name值为ok的数据,$set表示将这条数据的name设置为dd
);
db.<数据库名>.find({num:{$gt:30, $lt:50}}) ;//查询数据库中num大于30小于50的数据
db.<数据库名>.update(
{name:'ok'},{$unset{name:'dd'}}); //第一个大括号是查询name值为ok的数据,$unset表示删除这条属性,后面个大括号的name值为多少
);
在MongoDB中可以使用代码中的循环方法写法插入0-999:
var a=[];
for(var i=0;i<999;i++){
a.push({num:i});
}
db.<数据库名>.insert(a); //这样写的目的是降低与数据库的交互,提高效率,只与数据库交互一次。
db.<数据库名>.update({name:'aa'},{$inc:{go:400}}); //$inc表示增加数值,这句话代表name值为'aa'的数据中的go属性增加400,如果go增加前为200,执行语句后为600
db.<数据库名>.find({ $or:[ num:{$gt:30} , num: {$lt:50} ] }) ;//查询数据库中num大于30或小于50的数据
.sort({num:1})//按照num属性升序排列 1代表升序 -1代表降序
db.<数据库名>.find({},{ num:1,_id:0,name:1 }) ;//可以在第二个参数直接控制查询的哪些字段显示或不显示 ,这里代表查询的num列显示,_id列不显示,name列显示,_id默认主键如果不作限制会默认显示

浙公网安备 33010602011771号