mongoDB快速入门

122 阅读1分钟

安装

下载地址:www.mongodb.com/try/downloa…

概念对比

SQL概念MongoDB概念解释/说明
databasedatabase数据库
tablecollection数据库表/集合
rowdocument数据记录行/文档
columnfield数据字段/域
indexindex索引
primary keyprimary key主键,MongoDB自动将_id字段设置为主键

基础命令

数据库

  • 查看所有数据库:show dbs

  • 查看当前数据库:db

  • 切换数据库:use <db_name>,如:use test

  • 删除当前数据库:db.dropDatabase()

集合

  • 查看所有集合:show collections

  • 创建集合:db.createCollection("<collection_name>"),如:db.createCollection("article")

  • 删除集合:db.<collection_name>.drop(),如:*db.article.drop()*

文档

插入文档

db.collection_name.insert(document)

db.article.insert({
	title: 'MongoDB 教程', 
    description: 'MongoDB 是一个 Nosql 数据库',
    by: 'Andy',
    url: 'https://www.mongodb.com/',
    tags: ['mongodb', 'database', 'NoSQL'],
    likes: 100
})

更新文档

db.collection_name.update(
   <query>,   // 查询条件,类似于SQL中的WHERE部分
   <update>,  // 类似与SQL中的SET部分
   {
     multi: <boolean>  // 是否更新符合条件的所有文档,默认false只更新找到的第一条
   }
)
# 将title为‘MongoDB 教程’的所有文档修改为MongoDB
db.article.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}},{multi:true})

删除文档

db.collection_name.remove(
   <query> # 删除的查询条件
)
# 删除title为'MongoDB教程’的所有文档
db.article.remove({'title':'MongoDB 教程'})

查询文档

MongoDB中的条件操作符,通过与SQL语句的对比来了解下;

操作格式SQL中的类似语句
等于{key : value}where title = 'MongoDB 教程'
小于{key : {$lt : value}}where likes < 50
小于或等于{key : {$lte : value}}where likes <= 50
大于{key : {$gt : value}}where likes > 50
大于或等于{key : {$gte : value}}where likes >= 50
不等于{key : {$ne : value}}where likes != 50
  • 查看某集合下的所有文档:db.collection_name.find({}),如db.article.find({})

  • 条件查询,查询title为MongoDB教程的所有文档:db.article.find({'title':'MongoDB教程'})

  • 条件查询,查询likes大于50的所有文档:db.article.find({'likes':{$gt:50}})

  • and条件可以通过在find()方法传入多个键,以逗号隔开来实现,例如查询title为MongoDB教程并且by为Andy的所有文档:

    db.article.find({'title':'MongoDB教程','title':'MongoDB教程'})
    
  • or条件可以通过使用$or操作符实现,例如查询title为Redis教程MongoDB教程的所有文档

    db.article.find({$or:[{"title":"Redis 教程"},{"title": "MongoDB 教程"}]})
    
  • and 和 or 条件的联合使用,例如查询likes大于50,并且title为Redis教程或者"MongoDB教程的所有文档

    db.article.find({"likes": {$gt:50}, $or: [{"title": "Redis 教程"},{"title": "MongoDB教程"}]})
    

limit

读取指定数量的文档 db.collection_name.find().limit(n)

db.article.find().limit(2)  #只查询article集合中的2条数据

skip

跳过指定数量的文档:db.article.find().skip(2).limit(2)

排序

db.collection_name.find().sort({key:1}),1为升序,-1为降序

db.article.find().sort({likes:-1}) # 将article集合中文档的likes字段降序排列

索引

db.collection.createIndex(keys, options)
# background:建索引过程会阻塞其它数据库操作,设置为true表示后台创建,默认为false
# unique:设置为true表示创建唯一索引
# name:指定索引名称,如果没有指定会自动生成
  • 给title和description字段创建索引,1表示升序索引,-1表示降序索引,指定以后台方式创建;
db.article.createIndex({"title":1,"description":-1}, {background: true})
  • 查看article集合中已经创建的索引
db.article.getIndexes()

正则表达式

MongoDB使用$regex操作符来设置正则表达式,可以用来模糊查询

  • db.article.find({title:{$regex:"教程"}})

    db.article.find({ title:{$regex:"教程"} })
    
  • 不区分大小写的模糊查询,使用$options操作符

    db.article.find({ title:{$regex:"教程", $options:"$i"} })
    

相关文章

juejin.cn/post/684490…

juejin.cn/post/712674…