欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

mongoDB使用记录

程序员文章站 2022-07-03 21:01:37
一些mongodb学习的相关知识,记录下来以便下次查看使用 参考:https://docs.mongodb.com/manual/reference/operator/ http://www.runoob.com/mongodb/mongodb-tutorial.html https://code. ......

一些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数据结构对比

  mongoDB使用记录

  mongoDB使用记录

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的类型号,对应的代码如图

mongoDB使用记录

    若想实现跳过多少条数据,再去多少条数据的操作则可以实用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/