跳转至

4 mongo的基本使用

mongo的基本使用

  • 查看数据库 show dbs
  • 使用数据库 use [dbname]
  • 查看表 show collections
  • 创建数据库(必须插入数据才可以创建成功)

use firstmon

db.firstmon.insert({"name":"zdk"})

  • 删除数据库 use firstmon db.dropDatabase()

  • 创建集合(表) use firstmon db.createCollection("runoob")

有时候只需要插入数据集合就自己创建了 db.mycol2.insert({"name" : “kkk"}) - 查看集合 show collections - 删除集合 use firstmon db.mycol2.drop()

  • 插入文档

MongoDB 使用 insert() 或 save() 方法向集合中插入文档,在插入文档时候可以加入一些参数

  • document:要写入的文档。
  • writeConcern:写入策略,默认为 1,即要求确认写操作,0 是不要求。
  • ordered:指定是否按顺序写入,默认 true,按顺序写入。

save():如果 _id 主键存在则更新数据,如果不存在就插入数据。该方法新版本中已废弃,可以使用 db.collection.insertOne() 或 db.collection.replaceOne() 来代替。

insert(): 若插入的数据主键已经存在,则会抛 org.springframework.dao.DuplicateKeyException 异常,提示主键重复,不保存当前数据。

db.runoob.insert({title: 'MongoDB 教程', description: 'MongoDB 是一个 Nosql 数据库', by: '菜鸟教程', url: 'http://www.runoob.com', tags: ['mongodb', 'database', 'NoSQL'], likes: 10},{"writeConcern":0})

  • 删除命令

语法如下

db.collection.remove(
   <query>,
   {
     justOne: <boolean>,
     writeConcern: <document>
   }
)
query :(可选)删除的文档的条件。

justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。

writeConcern :(可选)抛出异常的级别。

> db.runoob.find({"url" : "http://www.runoob.com"})
{ "_id" : ObjectId("5ebfe125cda48d4fd0a77ae4"), "title" : "MongoDB 教程", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "菜鸟教程", "url" : "http://www.runoob.com", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 }
{ "_id" : ObjectId("5ebfe14fcda48d4fd0a77ae5"), "title" : "MongoDB 教程", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "菜鸟教程", "url" : "http://www.runoob.com", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 10 }
> 
> db.runoob.remove({"url" : "http://www.runoob.com"},{"justOne":1})
WriteResult({ "nRemoved" : 1 })
> 
> db.runoob.find({"url" : "http://www.runoob.com"})
{ "_id" : ObjectId("5ebfe14fcda48d4fd0a77ae5"), "title" : "MongoDB 教程", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "菜鸟教程", "url" : "http://www.runoob.com", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 10 }
> 
- 查询

db.runoob.find()

find可以跟or and 等参数这里不在讲解

  • limit与skip

limit()方法来读取指定数量的数据外,还可以使用skip()方法来跳过指定数量的数据,skip方法同样接受一个数字参数作为跳过的记录条数。

db.runoob.find().limit(5).skip(3)

  • 创建索引操作
    1 查看索引
    db.col.getIndexes()
    2、查看集合索引大小
    
    db.col.totalIndexSize()
    3、删除集合所有索引
    
    db.col.dropIndexes()
    4、删除集合指定索引
    
    db.col.dropIndex("索引名称")