集腋成裘-14-MongoDB系列-01初识MongoDB
粗知拙见:将数据通过类似json的形式存储于文档中。
安装只需要选择对应的文件夹即可,注意位置D:\software\MongoDB\
1:配置环境变量并检验是否安装成功(mongod -help)
2:启动数据库服务
创建一个批处理文件,mongoDB.bat 其语法为
mongod --dbpath 路径 (mongod --dbpath D:\software\MongoDB\DATA)
或者,直接运行以上命令(本机是配置了环境变量)
3:启动数据客户端
创建一个批处理文件,mongoClient.bat 其语法为
mongo 地址+端口/用户名 (mongo 127.0.0.1:27017/admin)
或者,直接运行以上命令(本机是配置了环境变量)
mongo 127.0.0.1:27017/admin
1:use+数据库名(use Aaron) 如果没有则创建,如果有就转到指定数据库。 2:show dbs (展示所有数据库) 新创建的数据库可能没有,需要插入一条数据 3:db.数据库名.insert({"key":"Value"}) 4:数据库的删除,先切换到指定数据库 db.dropDatabase()
1:增 方式一:插入文档数据时候,如果集合不存在会自动创建 db.集合名称.insert({"key":"Value"}) 方式二:创建文档 db.createCollection(name,options) 2: 删 db.集合名称.drop() 3:查 show collections show tables
options 中的参数
capped:是否创建固定集合,如果是,需要设置Size大小。一旦数据超过这个大小后,会自动覆盖历史数据。
autoIndexId:自动在id字段创建索引
size:为固定集合指定一个最大值
max:集合中包含文档最大数
示例:db.createCollection("Student",{capped:true,autoIndexId:true,size:1024000,max:1000})
1:增 方式一:直接新增一个文档 db.集合名.insert({"key":value}) 方式二:先定义一个文档,再插入 document( {"key":value} ) db.集合名.insert(document) 2:删 db.集合名.remove( {条件}, { justOne:是否只删除第一条 } ) 一键毁所有 db.集合名.remove(} 3:改 db.集合名.update( {条件:类似where}, {$set:{字段}}, { upsert:update+insert如果不存在,则插入,默认false,不插入 multi:默认false,只更新第一条。如果为true,全部更新 writeConcern: } ) db.集合名.save( {文档}, { writeConcern: } ) 4:查 db.集合名.find({条件}) db.集合名.findOne({条件})
1:条件查询 等于 {"key":"Value"} where key = 'Value' 不等于(noequal) {"key":{$ne:Value}} where key != Value 大于(greater than) {"key":{$gt:Value}} where key > Value 大于等于(greater than equal) {"key":{$gte:Value}} where key >= Value 小于(less than) {"key":{$lt:Value}} where key < Value 小于等于(less than equal) {"key":{$lte:Value}} where key <= Value 2:模糊查询 包含 {"key":/Value/} where key like '%Value%' 开头 {"key":/^Value/} where key like 'Value%' 结尾 {"key":/Value$/} where key like '^Value'
修改器名称 语法 备注 $set {$set:{field:value}} 指定一个字段,存在则修改,否则新增 $inc {$inc:{field:value}} 指定一个数值类型字段,对其进行增加、减少 $unset {$unset:{field:1}} 删除一个键值对 $push {$push:{field:value}} 指定一个数组类型字段,存在则插入(如果是非数组类型报错),否则新增 $addToSet {$addToSet:{field:value}} 指定一个数组类型字段的值,存在则不操作,否则新增 $pop {$pop:{field:1}} 删除一个数组类型字段的某个值(1:最后一个,-1:第一个) $pull {$pull:{field:1}} 删除一个数组类型字段的指定值 6. $addToSet与$each结合完成批量数组更新 db.Student.update({"id":2012094016},{$addToSet:{books:{$each:["C#","java","db","java"]}}})
4:数据类型
Object ID :Documents 自生成的 _id
Object ID:
每个文档都有一个属性,为_id保证文档的唯一性;
可以自己去设置_id插入文档
如果自己没设置,mongoDB为每个文档提供一个独特的_id ,是一个12字节十六进制数
前4个字节为当前时间戳
接下来的3个字节为机器ID
接下来2个字节为mongo的服务进程ID
最后3个是简单的增量值
String: 字符串,必须是utf-8
Boolean:布尔值,true 或者false (这里有坑哦~在我们大Python中 True False 首字母大写)
Integer:整数 (Int32 Int64 你们就知道有个Int就行了,一般我们用Int32)
Double:浮点数 (没有float类型,所有小数都是Double)
Arrays:数组或者列表,多个值存储到一个键 (list哦,大Python中的List哦)
Object:如果你学过Python的话,那么这个概念特别好理解,就是Python中的字典,这个数据类型就是字典
Null:空数据类型 , 一个特殊的概念,None Null
Timestamp:时间戳
Date:存储当前日期或时间unix时间格式 (我们一般不用这个Date类型,时间戳可以秒杀一切时间类型)