当前位置: 移动技术网 > IT编程>数据库>MongoDB > mongoDB使用记录

mongoDB使用记录

2018年01月17日  | 移动技术网IT编程  | 我要评论

一些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/

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网