只要是数据库那么就绝对离不开最为核心的功能:CRUD ,所以在MongoDB里面对于数据的操作也是有支持的,
需要提醒的是,除了增加之外,其他的都很麻烦。
1、数据增加 => db.集合.insert();
范例:增加一个简单的数据
(01)、db.infors.insert({"url": "www.mldn.cn"});
(02)、数组形式 :如果想保存多个数据,那么就使用数组;
db.infors.insert([{"url": "www.mldnjava.cn"},{"url": "www.mldnphp.cn"}]);
(03)、保存10000个数组?用javascript语言;如果数据保存很多的情况下,列表是不会全部列出,只会列出一部分。
for(var i=0; i < 100; i++) {
db.infors.insert ({"url": "www.mldn.cn" + i})
};
2、数据查询
(01)、任何的数据库中,数据的查询操作都是最为麻烦的,而且MongoDB数据库里面,对于查询非常到位
有关系运算、逻辑运算、数据运算、正则运算等。
(02)、首先对于数据的查询操作核心的语法:“ db.集合名称.find({查询条件}, [{设置显示的字段}]);”
(03)、范例:最简单的用法就是直接使用find()函数完成查询
1、db.infors.find(); #查询整个数据库信息
2、db.infors.find({"url": "www.mldn.cn"}); #查询数据库中url是www.mldn.com的数据
发现在进行数据查询的时候也是按照JSON的形式设置的相等关系,整个开发之中不可能离开JSON数据。
对于设置的显示字段严格来讲称为数据的投影操作。如果不需要显示的字段设置“0”,需要显示的字段设置“1”。
3、范例:db.infors.find({"url": "www.mldn.cn"}, {"id":0, "url": 1});
筛选url,id=0不显示,url=1显示
(04)、数据查询可以进行优雅的漂亮的显示使用函数:pretty();
1、db.infors.find({"url": "www.mldn.cn"}, {"id":0, "url": 1}).pretty(); #数据列多的时候一定可以漂亮显示
(05)、范例:查询单个数据
1、db.infors.findOne({"url": "www.mldn.cn"}, {"id":0, "url": 1});
(06)、利用以上的查询可以实现格式化的输出化结果,前提:列的内容必须多
3、关系查询:
(01)、在MongoDB中支持的关系查询操作:大于($gt)、小于($lt)、大于等于($gte)、小于等于($lte)、不等于($ne)、等于(key:value、$eq)
想要正常使用,需要准备一个数据集合。
(02)、范例:定义一个学生信息集合 =>
db.students.insert({"name":"张三", "age":15, "sex": "男", "seore": 90, "adderss": "海淀区"});
db.students.insert({"name":"李四", "age":16, "sex": "男", "seore": 88, "adderss": "海淀区"});
db.students.insert({"name":"小红", "age":19, "sex": "女", "seore": 98, "adderss": "海淀区"});
db.students.insert({"name":"王五", "age":16, "sex": "男", "seore": 80, "adderss": "朝阳区"});
db.students.insert({"name":"晓敏", "age":17, "sex": "女", "seore": 99, "adderss": "朝阳区"});
db.students.insert({"name":"赵六", "age":18, "sex": "男", "seore": 90, "adderss": "海淀区"});
db.students.insert({"name":"刘张关", "age":15, "sex": "男", "seore": 90, "adderss": "海淀区"});
范例:查询姓名是张三的数据 => db.students.find({"name": "张三"}).pretty(); *注:只有等于操作是这么写
范例:查询年龄大于15岁的学生 => db.students.find({"age": {"$gt": 15}}).pretty();
大于、小于、不等于....和等于操作不一样,需要在选项(age)后再加一个JSON,参数1:关系操作符,参数2:选项(19);
此时与之前最大的区别就在于,在一个JSON结构里面需要再定义其它的JSON结构,记住并且这种风格在日后通过程序进行操作的时候依然如此。
4、逻辑运算
(01)、逻辑运算主要 就是三种类型:与( $and )、或( $or )、非( $not、$nor )
(02)、范例:查询学生信息 19 ~ 20的学生信息 => db.students.find({"age": {"$gt":17, "$lt": 19}}).pretty();
在逻辑运算中,“and”是最容易的,只需要“,”逗号分隔就可以实现。
(03)、范例:查询年龄大于16, 或者成绩大于90分的学生信息 => db.students.find({"$or": [{"age": {"$gt": 16}},{"seore": 90}]}).pretty();
逻辑运算中,或的连接需要为数据在数组中设置过滤条件;
5、求摸
(01)、摸的运算使用 “ $mod ” 来实现,语法 => "{ $mod : [数字, 余数] }";
(02)、范例:db.students.find({"age": {"$mod": [17, 0]}).pretty();
利用求模计算可以编写一些数学的计算公式。
6、范围查询
(01)、只要是数据库,必须存在有 “ $in ” (在范围之内)、“ $nin ”(不在范围之内) ;
(02)、范例:db.students.find({"name": {"$in": ["张三", "李四", "晓敏"]}});
在实际的工作中,范围操作很重要。