1.切换数据库 use 数据库 实际现在没有创建数据库,只有在数据库里面保存集合之后才会创建(延迟创建)
2 show dbs 查看数据库
2.创建一个集合(集合相当与表的概念) db.createCollections("集合名称") (不正常,正常请看第五点) 创建集合后数据库才会创建 区分大小写3.很多时候如果你按照以上的代码形式操作进行会觉得你不正常,因为正常都是直接向里面直接保存一个数据
4.db.集合名.find() 查找集合里的数据 相当于 select * form 表
5.db.集合.insert() 往集合里添加数据,数据格式为json 如果集合不存在 自己创建 (正常的操作)
7.db.集合名称。find(若干条件) 查看**表,**集合数据的语法
8.集合就相当于表的概念,表的结构一旦定义必须按照定义的要求进行内容的编写,但是mongo不一样,他可以所以随意扩充,集合里的内容可以随意去定义,完全不用考虑其他结构,mongo里没有查看集合结构的操作。
9. db.集合名.fingOne() 查看单独的一个文旦数据
10.db.集合名.remove({"id":"id值"}) 删除
11.db.集合名.update({"id":"id值"},数据) 数据结构须一致
12.db.集合名称.drop() 删除集合
13.db.dropDatabase() 删除数据库(删除当前所在的数据库)
添加
1.db.集合.insert([{},{}]) 保存多个数据使用数组 []
2.for(var x=0;x<10000;x++)
{
db.集合.insert({数据});
} 保存10000条数据 保存数据很多时,列表不会全部列出 只会列出部分数据
查询 (Mongo查询支持很到位,包含逻辑判断,关系运算,数组运算,正则运算)
1.db.集合.find({查询条件},{"_id":0(显示字段,0为不显示,1为显示)}) 对于这种查询为投影查询意义不大,我们可以使用pretty() 函数进行,进行漂亮的显示
2.db.集合.find({查询条件},{"_id":0(显示字段,0为不显示,1为显示)}).pretty() 使用
关系查询操作 大于($gt),小于($lt),大于等于($gte)小于等于 ($lte) 不等于($ne)
范例年龄大于19岁的学生
3.db.students.find({"age":{"$gt":19}}).pretty() 语法
逻辑运算 (于($and)的类型 或($or)的类型 非($not)的类型)
范例 查询年龄在19-20岁的学生信息
4.db.students.find({"age":{"$gte":19,"$lte":20}}).pretty() 语法
范例 查询年龄不是19c岁的学生信息
5.db.students.find({"age":{"$ne":19}}).pretty() 语法
范例(或($or)的类型) 查询年龄大于19岁,或者成绩大于90分的学生
6.db.students.find({"$or":[{"age":{"#gt":19}},{"score":{"$gt":90}}]}).pretty() 语法
范例 (或的求反操作)
db.students.find({"$nor":[{"age":{"#gt":19}},{"score":{"$gt":90}}]}).pretty() 语法
求模 使用$mod 语法 {"$mod":{数字,余数}}
范围查询 只要是数据库 就存在有 $in(在范围中) $nin(不在范围中)
8. db.students.find({"name":{"$in":["张三","李四","王五"]}}).pretty() 语法
数组查询 (mongo里面是支持数组保存的,一旦支持数组保存,就需要针对数组的数据进行匹配)
可以使用这几个运算符:($all,$size,$slice,$elemMatch)
9.db.students.find({"course":{"$all":["语文","数学"]}}).pretty() 语法 {"name":"张三","course":["语文","数学","政治"]}
也可以定义数组索引查询
db.students.find({"course.1":"数学"}).pretty() 语法
查询只参加两门课程的学生 使用$size 来进行控制数量
db.students.find({"course":{"$size":2}}).pretty() 语法
10.嵌套集合运算$elemMatch
11.判断某个字段时候存在 $exists 设置为true为存在 false为不存在
12.条件过滤 $where
正则查询 (模糊查询)
13.基础语法{key:正则标记}
完整语法{key:{"$regex":正则标记,"$options",选项}}
|- 对于options主要设置正则信息查询的标记:
|-"i":忽略字母大小写
|-"m"多行查找
|-"x"空白字符串处了被转义的活在字符类中意外的完全被忽略
|-"s"匹配所有的字符,包括换行内容
|-需要注意的是,如果 直接使用(Javascript)那么只能够使用i和m 而x和s必须使用$regex
db.students.find({"name":/谷/}).pretty() 语法
14.查询排序 $sort() 1是升序 -1是降序 自然排序 $natural
15.数据分页显示 $skip(表示跨过多少数据) $limit(取出多少数据)
16.数据更新操作 $save() $update()
|-upsert 如果要更新的数据不存在,则增加一条新的(true为增加,false为不增加)
|-multi 表示是否只更新第一行记录,如果是false只更新第一天,如果是true全部更新
17删除数据 remove()