认识MongDB
基于分布式文件存储的开源数据库系统。
旨在为WEB应用提供可扩展的高性能数据存储解决方案。
将数据存储为一个文档,文档类似与Json格式。
{
name:"小明",
age:16,
address: {city:"长沙", country:"china"}
}
进入退出
进入退出mongDB
命令行中输入:
mongo 进入
exit 或 quit 退出
集合操作
显示所有集合 :
show dbs
切换创建数据库
use 数据库名称
use python64 如果没有python64则创建,有则使用
查看所在集合
db
删除集合
db.dropDatabase()
只有在当前的数据库中,才能使用
显示当前数据库集合
show collections
创建集合
db.createCollection(db_name)
db.createCollection("student")
创建名为student的集合,注意严格遵守大小写
删除集合
db.集合名称.drop()
db.student.drop()
删除刚刚创建的student的集合
如果集合不存在会返回false
文档操作
添加文档
db.集合名称.insert(document)
每一条数据就是一个document,是json格式的数据
db.student.insert({_id:1,name:"jiucheng",age:10})
如果student集合没有,会创建student集合并插入数据{_id:1,name:"jiucheng",age:10}
如果添加文档时,没有_id这个这个属性,mongodb会自己添加一个唯一的_id
db.student.insert([
{_id:2,name:"hanxin",age:12},
{_id:3,name:"hansha",age:19},
{_id:4,name:"danny",age:18},
{_id:5,name:"xinlan",age:20},
])
插入多条数据,注意有中括号
查找数据
普通条件查找
db.集合名称.find([conditions])
conditions为查找条件
db.student.find()
查找student中所有的数据
db.student.find({age:18})
查找student中age=18的数据
db.student.find().pretty() 数据格式化显示
db.student.find({age:12}).pretty() 以类似结构体的方式显示查找到的数据
db.student.find({name:"xinlan",age:20})
查找nane为xinlan,并且age为20的数据,多条件查找
逻辑运算符
and条件 {$and:[{expression1}, {expression1}, …] }
db.student.find({$and:[{name:"danny"},{age:18}]})
查找集合student 中name为danny并且age为18的数据
or条件 {$or:[{expression1}, {expression1}, …] }
db.student.find({$or:[{name:"danny"},{age:18}]})
查找集合student 中name为danny或者age为18的数据
and和or混用
db.student.find({$or:[{$and:[{name:"danny"},{age:18}]},{$and:[{name:"xinlan"},{age:20}]}]})
and和or混用
查找name为danny且age为18 或者 name为xinlan且age为20的数据
操作符
操作符 | 描述 |
---|---|
$ne | 不等于 |
$gt | 大于 |
$lt | 小于 |
$gte | 大于等于 |
$lte | 小于等于 |
db.student.find({"age":{"$gte":18}})
查询集合中age>=18的数据
修改数据
db.集合名称.update(, , {multi:})
db.table.update({sex:'男'}, {age:20})
修改一条数据
db.student.update({age:18}, {age:25})
将所有age=18的数据,整条修改为age=20,修改后数据只有age=25这一条,其他数据删除,不推荐使用
指定修改
指定属性修改: { $set: {age:20} }
db.student.update({age:18}, {$set{age:25}})
将age=15的数据,age更改为18,不会改动其他属性值
只会修改符合条件的第一条数据,即一次只会修改一条
更新集合中所有满足条件的文档: { multi: true }
db.student.update({age:18}, {$set{age:25}},{multi:true})
将所有age=18的数据,全部修改为age=20,一次修改多条符合条件的数据
删除数据
db.集合名称.remove(, {justOne:})
db.collection_name.remove()
db.student.remove({})
删除集合中所有的文档
db.student.remove({age:25})
删除所有age=25的数据,所有的age=25的都会删除,注意使用
db.student.remove({age:25},{justOne:true})
删除集合中age=25的一条数据,只删除集合中满足条件的第一条文档,加了一个{justOne:true}的条件,注意大小写