MongoDB基础操作
一、数据库操作
# 1.显示数据库 show dbs show databases # 2.创建数据库或使用数据库 use db # 注意: db 存储值后,才会在show dbs命令下显示 # 3.查看当前数据库 db # 4.删除当前的数据库 db.dropDatabase()
二、集合操作
注意:一般不手动创建集合,向不存在的集合第一次加入数据时,集合会被自动创建出来
# 1.创建集合 db.createCollection('集合名称') db.createCollection('集合名称', {capped: true, size: 10}) 参数capped: 默认值为false表示不设置上下,值为true表示设置上限 参数size: 当capped为ture时,需要指定此参数,表示上限大小,当文档达到上限时,会覆盖之前的数据,单位为字节 # 2.查看集合 show collections # 3.删除集合 db.集合名称.drop()
三、数据类型
ObjectID: 文档ID String: 字符串,必须是utf-8 Boolean: 存储一个布尔值, true false Integer: 整数可以是32或64取决于服务器 Double: 浮点型 Arrays: 数组或列表, 多个值存储到一个键 Object: 用于嵌入式的文档, 即一个值为一个文档 Null: 存储Null值 Timestamp: 时间戳,表示从1970-1-1到现在的总秒数 Date: 存储当前的日期或时间的UNIX的时间格式
注意:
1.创建日期的格式如下 new Date('YYYY-MM-DD') 2.ObjectID 每个文档都有一个_id属性, 保存每个文档的唯一性(相当于MySQL的主键) 可以自己去设置_id插入文档,如果没有提供,那么MongoDB为每个文档提供一个独特的_id,类型为ObjectID() ObjectID是一个12字节的十六进制数 前4个字节为当前的时间戳 接下来3个字节的机器ID 接下来2个字节中MongoDB的服务进程id 最后3个字节是简单的增量值
好吧,现在关于ObjectID的字节数量,不确定
四、插入文档
db.集合名称.insert(document) # 文档自动生成_id db.stu.insert({name: 'tom', age: '24'}) # 设置_id db.stu.insert({_id: '20191122', name: 'bob', age: 12}) # 注意:插入文档时,如果不指定_id参数。MongBD会为文档分配一个唯一的ObjectID
五、保存文档
db.集合名称.save(document) # 如果文档_id存在,则修改文档,如果不存在,则插入文档 # 实例 db.stu.save({"_id" : ObjectId("5dd765df2fe79d143d09716d"), "name" : "tom", "age" : "10"})
六、查询文档(简单)
db.stu.find() # 复杂的查询,稍后更新
七、更新文档
db.集合名称.update(<query>, <update>, {multi: <Boolean>}) 参数query: 查询条件 参数update: 更新操作符 参数multi: 可选,默认false, 表示只更新找到的第一条记录,值为true表示把满足条件的文档全部更新 db.集合名称.update({name: 'tom'}, {name: 'hr'}) # 替换整条记录 db.stu.update({name: 'tom'}, {$set: {name: 'hehe'}}) # 更新一条记录 db.stu.update({age: 24}, {$set: {name: 'hihi'}}, {multi: true}) # 全部更新
八、删除文档
db.集合名称.remove(<query>, {justOne: <Boolean>}) 参数query: 删除的文档的条件 参数justOne: 可选, 如果设为true或1, 则只删除一条,默认为false,表示删除多条 # 例子 db.集合名称.remove({name: 'tom'}) # 删除name值为tom的所有文档 db.集合名称.remove({name: 'tom'}, {justOne: true}) # 删除一条记录
注意:
save()和update()的区别
save()可以修改字段名称或添加数据
update()修改或添加数据
练习数据
db.stu.insert({name: '郭靖', hometown: '蒙古', age: 20, gender: true}) db.stu.insert({name: '黄蓉', hometown: '桃花岛', age: 18, gender: false}) db.stu.insert({name: '华筝', hometown: '蒙古', age: 18, gender: false}) db.stu.insert({name: '黄药师', hometown: '桃花岛', age: 40, gender: true}) db.stu.insert({name: '段誉', hometown: '大理', age: 16, gender: true}) db.stu.insert({name: '段王爷', hometown: '大理', age: 45, gender: true}) db.stu.insert({name: '洪七公', hometown: '华山', age: 40, gender: true})