美文网首页
mongoDB 基本使用

mongoDB 基本使用

作者: Air_cc | 来源:发表于2016-06-25 18:18 被阅读50次

数据库帐号的创建与使用

// mongodb 未开auth时 创建超级管理员
mongo --port 27017
use admin
db.createUser({user: 'root', pwd: 'root', roles: [{role: 'userAdminAnyDatabase', db: 'admin'}]})


// 停止mongodb
kill -2 pid 或 db.shutdownServer() 

// 重启mongodb 开启auth
mongo --auth --port 27017
use admin
db.auth('root', 'root')

// 切换到普通db
use students
db.createUser({user: 'std', pwd: 'stdpwd', roles: [role: 'readWrite', db: 'students']})

// 其他操作
db.getUser('std');
db.system.users.find({});  or show users
show collections
// 删除某个collection
db.collectionName.drop()

// 之后访问相应的数据库
mongo mongodb://std:stdpwd@120.12.12.1:27017/student

参考
不知博客
官方说明

数据的备份还原

// 备份数据, 使用mongodump
mongodump -h dbhost:27017 -d dbname -u username -p password -o dbdirectory

// 还原数据
mongorestore -h dbhost:27017 -d dbname -u username -p password dbdata

数据导入与导出

数据导出

mongoexport --host monogo_address --db db_name --collection collection_name --out output_file_name  --fields "field_1, field_2"  --type output_type_like_csv_default_json  --jsonArray  --limit limit_count --skip skip_count

注意:

  1. 导出类型为json时导出的数据中必然包括 _id 字段, 可设置 --jsonArray 将数据从 {}{}{} 转成 [{},{},{}]
  2. 导出类型为csv时必须指定 --fields

数据导入

mongoimport -h monogo_address --db db_name --collection collection_name --file output_file_name --type csv|json(default) --fields "field_1, field_2"

数组的更新

// collection 单条实例数据结构
{
  _id: '123',
  arr: [
    {name: 'a', age: 12, courses: [{name: 'c++', grade: 123}]},
    {name: 'b', age: 13},
  ],
}

添加obj到数组

  • 添加不重复的obj --$addToSet
    db.collection.update({_id: '123'}, {$addToSet: {arr: {name: 'c', age: 14}}})
  • 添加可重复的obj -- $push
    严格匹配:db.collection.update({_id: '123'}, {$push: {arr: {name: 'a', age: 12}}})

    匹配存在:``
  • 一次添加多个obj --$push $each
    db.collection.update({_id: '123'}, {$push: {arr: {$each: [{name: 'd', age: 15}, {name: 'e', age: 16}]}}})

$each还可配合其他操作符使用:

  • 设置数组的排序 $sort
    db.collection.update({_id: '123'}, {$push: {arr: {$each: [{name: 'd', age: 15}, {name: 'e', age: 16}], $sort: {age: -1} }}}) 设置数组按age由大到小排
  • 设置插入的位置 $position
    db.collection.update({_id: '123'}, {$push: {arr: {$each: [{name: 'd', age: 15}, {name: 'e', age: 16}], $position: 2 }}}) 设置插入的位置在index为2处)
  • 设置数组的切除 $slice
    db.collection.update({_id: '123'}, {$push: {arr: {$each: [{name: 'd', age: 15}, {name: 'e', age: 16}], $slice: -3 }}}) 设置只留下后三个)

从数组中删除特定obj

db.collection.update({_id:'123'}, {$pull: {name: 'a', age: 12}}})

更新数值中特定对象的特定key

  • 一维数组
    db.collection.update({_id: '123', 'arr.name': 'a'}, {$set: {'arr.$.age': 13}}})
  • 多维数组
    db.collection.update({_id: '123', 'arr.0.courses.0.name': 'c++'}, {$inc: {arr.0.courses.0.grade: 10}})

插入数据

  • 批量插入数据 (mongoDB V3.2)
    db.collections.insertmany()

相关文章

  • Mongodb 02-CURD

    ===========mongodb =========== mongodb的基本使用 案列需求 存放文章评论的数...

  • MongoDB基本使用

    数据写入与查询 数据更新 数据删除 创建索引

  • MongoDB基本使用

    本文不想文绉绉的去分析MongoDB内部的数据存储结构,只是想单纯的从用的方面给大家一些指导,也不能说是指导,也是...

  • Mongodb基本使用

    启动服务:./bin/mongodb-3.2.10/bin/mongod -f conf/mongod.conf ...

  • Mongodb 基本使用

    例如:现在有数据库 ·

  • mongoDB 基本使用

    数据库帐号的创建与使用 参考不知博客官方说明 数据的备份还原 数据导入与导出 数据导出 注意: 导出类型为json...

  • MongoDB基本使用

    MongoDB基本概念 数据库(database) 数据库是一个仓库,在仓库中存放集合。 集合(collectio...

  • MongoDB基本使用

    成功启动MongoDB后,再打开一个命令行窗口输入mongo,就可以进行数据库的一些操作。 输入help可以看到基...

  • mongodb基本使用

    mongodb MongoDB是专为可扩展性,高性能和高可用性而设计的数据库。它可以从单服务器部署扩展到大型、复杂...

  • Mongodb的索引

    前面的两篇文章简单的讲解mongodb基本的操作,安装与使用的方式。一文了解Mongodb的使用初识Mongodb...

网友评论

      本文标题:mongoDB 基本使用

      本文链接:https://www.haomeiwen.com/subject/bstchttx.html