mongoDB使用记录
一些mongodb学习的相关知识,记录下来以便下次查看使用
参考:https://docs.mongodb.com/manual/reference/operator/
http://www.runoob.com/mongodb/mongodb-tutorial.html
https://code.ziqiangxuetang.com/mongodb/mongodb-tutorial.html
1)安装
windows安装:https://www.mongodb.com/download-center#community
linux安装(ubuntu):sudo apt-get install mongodb
windows环境下,在安装目录下的Server\3.6\bin\目录下面有一个mongo.exe,双击打开即可
linux环境下,打开终端输入mongo即可
2)MongoDB数据结构简述
结合mysql数据结构对比
3)数据操作
查看所有数据库:show dbs
创建或切换数据库:use dbname (若数据库存在则切换,不存在则创建)
删除当前数据库:db.dropDatabase()
查看数据库所有表:show tables
mongoDB中所有数据操作都使用javascript语法
1.插入操作
首先 切换到某数据库,若不切换,则默认在test数据库中操作
上图的两条数据中,id为1的数据,插入操作为
db.testable.insert({ 'user_name':'Mark Hanks', 'email':'mark@abc.com', 'age':25, 'city':'Los Angeles' })
insert操作,若testable表存在,则会在该表中插入该条数据,若不存在则会创建该表,再插入该条数据
mongoDB会自动创建字段_id,类型为object id
插入文档你也可以使用 db.testable.save(document) 命令。如果不指定 _id 字段 save() 方法类似于 insert() 方法。如果指定 _id 字段,则会更新该 _id 的数据。
2.查询操作
更详细的查询操作请参考https://docs.mongodb.com/manual/reference/operator/query/
db.collection.find(query, projection)
query为查询条件,projection使用投影操作符指定返回的键,忽略该参数则返回所有键
查询该集合中所有数据:
db.testable.find().pretty()
find()默认参数则查询所有数据,追加pretty()函数,则可以格式化返回的文档数据
例如要查询上面添加的数据,则
db.testable.find({ 'name':'Mark Hanks' })
该操作查询姓名字段为Mark Hanks的数据
若要查询年龄大于20的数据则
db.testable.find({ 'age':{'$gt':20} })
上述操作查找年龄大于20的数据 gt 对应英文 greater than
相应的比较符号还有:
$gt:大于 (greater than)
$gte:大于等于(greater than equal)
$lt:小于(less than)
$lte:小于等于(less than equal)
若想要多次比较,则用逗号隔开即可,比如查询大于20小于25的文档
db.testable.find({ 'age':{'$gt':20,'$lt':25} })
还可以通过数据类型进行比较,比如查询name字段为string类型的数据
db.testable.find({ 'name':{'$type':2} })
2为string的类型号,对应的代码如图
若想实现跳过多少条数据,再去多少条数据的操作则可以实用skip函数和limit函数
例如想要跳过前5条数据,取出5条数据,则:
db.COLLECTION_NAME.find().limit(5).skip(5)
limit限制取出数据的条数,skip限制跳过数据的条数
3.删除操作
remove() 方法的基本语法格式
db.collection.remove( <query>, <justOne> )
MongoDB 2.6 版本以后的语法格式
db.collection.remove( <query>, { justOne: <boolean>, writeConcern: <document> } )
其中:
query :(可选)删除的文档的条件。 justOne : (可选)如果设为 true 或 1,则只删除一个文档。 writeConcern :(可选)抛出异常的级别例如,要删除上面插入的数据,可以执行操作
db.testable.remove({ {'name':'Mark Hanks'} , {justOne:true} })
上述操作的意思是,删除一条name为Mark Hanks的数据,若justOne为false,则删除所有name为Mark Hanks的数据,默认为false
若祥清空该集合中的所有数据,则执行db.testable.remove({})即可
4)更新操作
语法格式如下:
db.collection.update( <query>, <update>, { upsert: <boolean>, multi: <boolean>, writeConcern: <document> } )query : update的查询条件,类似sql update查询内where后面的。 update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的 upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。 multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。 writeConcern :可选,抛出异常的级别。
例如,要将user_name为Mark Hanks的数据的年龄设置为30
db.collection.update( {'user_name':'Mark Hanks'}, {'$set':{'age':30}}, { multi: true } )
更详细的update操作请参考https://docs.mongodb.com/manual/reference/operator/update/
上一篇: Vue 应用中结合vux使用微信 jssdk的方法
下一篇: InfluxDB meta文件解析