zoukankan      html  css  js  c++  java
  • mongodb学习01介绍

    安装/运行

    • 查看当前mongodb运行情况: pgrep mongo;
    • 在当前路径下建立数据库: mkdir -p data/db
    • 按照一个数据库路径运行mongod --dbpath ./data/db
    • 运行数据库之后,使用mongo; 然后可以进行数据库/表单操作

    基本命令

    • 成功启动MongoDB后,再打开一个命令行窗口输入mongo,就可以进行数据库的一些操作。
    • show dbs:显示数据库列表
    • show collections:显示当前数据库中的集合
    • show users:显示用户
    • use <db name>:切换当前数据库
    • db.foo.find(): foo指的是当前数据库下,一个叫foo的集合(表);对于当前数据库中的foo集合进行数据查找(由于没有条件,会列出所有数据)
    • db.foo.find( { a : 1 } ):对于当前数据库中的foo集合进行查找,条件是数据中有一个属性叫a,且a的值为1

    常用命令

    help

    • db.help()
    • db.foo.help()
    • db.foo.find().help()
    • rs.help()

    数据表

    • 到某个数据库之后执行db.createCollection("Account")或者db.createCollection("Test",{capped:true, size:10000})
      • capped:true,表示该集合的结构不能被修改;

      • size:在建表之初就指定一定的空间大小,接下来的插入操作会不断地按顺序APPEND数据在这个预分配好空间的文件中,如果已经超出空间大小,则回到文件头覆盖原来的数据继续插入。这种结构保证了插入和查询的高效性,它不允许删除单个记录,更新的也有限制:不能超过原有记录的大小。这种表效率很高,它适用于一些暂时保存数据的场合,比如网站中登录用户的session信息,又比如一些程序的监控日志,都是属于过了一定的时间就可以被覆盖的数据。

      • 修改数据表名: db.Account.renameCollection("Account1")

    数据库

    • 查看当前使用的数据库: db.getName()或者db
    • 删除当前使用数据库: db.dropDatabase();
    • 切换数据库: use <otherdb>
    • 创建数据库: 先use <newdb>,然后db.createCollection('user'), 这样就创建来数据库和一个数据表
    • 查看数据库结构: db.status()
    • 查看数据库版本: db.version()

    数据库其他操作

    • 查看当前db的链接机器地址: db.getMongo();
    • 从指定主机上克隆数据库: db.cloneDatabase(“127.0.0.1”); 将指定机器上的数据库的数据克隆到当前数据库
    • 从指定的机器上复制指定数据库数据到某个数据库: db.copyDatabase("mydb", "temp", "127.0.0.1");将本机的mydb的数据复制到temp数据库中
    • 修复当前数据库: db.repairDatabase();
    • 显示当前db所有聚集索引的状态: db.printCollectionStats();

    数据表增/改/删

    • 添加 db.users.save({name: ‘test’, age: 23});
    • 避免空值: 例子:`db.users.save({email: {type: String, trim: true, unique: true, sparse: true}),`
    • 修改:
      • db.users.update({age: 23}, {$set: {name: 'changeName'}}, false, true);相当于:update users set name = ‘changeName’ where age = 25;
      • db.users.update({name: 'Lisi'}, {$inc: {age: 50}}, false, true);相当于:update users set age = age + 50 where name = ‘Lisi’;
      • db.users.update({name: 'Lisi'}, {$inc: {age: 50}, $set: {name: 'hoho'}}, false, true);相当于:update users set age = age + 50, name = ‘hoho’ where name = ‘Lisi’;
    • 删除: db.users.remove({age: 132});

    简介

    • 面向文档的数据库
    • 以文档模型取代行的概念
    • 不再有预定义模式,即文档的键和值不再是固定的类型和大小
    • 支持存在时间有限的集合,适用于将在某个时刻过期的数据,如会话
    • 不具备一些关系型数据库的普遍功能,如连接和复杂的多行任务

    文件操作

    • 可视化工具: robot 3T
    • 文件导出:

    ···
    //远程导出collection
    mongodump --username ushoapi --host dev.sosho.cn --port 27017 --db alumnidb_test -c celebrity_news

    //bson文件转化为json文件
    bsondump collection.bson > collection.json

    //json文件转化为csv文件
    json2csv
    ···

  • 相关阅读:
    【Spring源码解读】bean标签中的属性(二)你可能还不够了解的 abstract 属性和 parent 属性
    【效率工具】史上最好用的SSH一键登录脚本,第三版更新!
    WebGL简易教程——目录
    写技术博客的一些心得体会
    空间直线与球面相交算法
    three.js中帧缓存的使用
    curl使用小记(二)——远程下载一张图片
    curl使用小记(一)
    three.js中场景模糊、纹理失真的问题
    关于three.js中的矩阵更新
  • 原文地址:https://www.cnblogs.com/jinkspeng/p/4359411.html
Copyright © 2011-2022 走看看