mongoDB

1. mongodb server 安装

docker 方式安装 mongodb。

touch docker-compose.yml
vi docker-compose.yml

version: '3.7'

services:
  mongodb-primary:
    container_name: mongodb
    image: 'bitnami/mongodb:latest'
    restart: always
    network_mode: "host"
    environment:
      - MONGODB_ROOT_PASSWORD=123

docker-compose up -d
docker ps -a

2. 使用 docker 中的 mongosh

不需要本地安装 mogodbsh,直接使用 docker 中的 mongosh。

docker run -it --rm --network host bitnami/mongodb:latest mongosh

上面的命令太长,可以用 alias 定义别名。

alias mg='docker run -it --rm --network host bitnami/mongodb:latest mongosh'
mg -u root -p

3. 本地安装 mongosh

sudo touch  /etc/yum.repos.d/mongodb.repo
sudo vi /etc/yum.repos.d/mongodb.repo

[mongodb-org-6.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/6.0/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc

sudo yum install mongodb-mongosh -y
mongosh --version

4. 验证 mongodb 是否正常工作

mongosh -u root -p 123
help           // 查看 MongoDB 的帮助信息
db.help()      // 查看数据库的帮助信息
db.version()   // 查看 MongoDB 的版本号
show dbs       // 查看有多少个数据库
use todo       // 使用 todo 库作为当前的数据库
db             // 查看当前的数据库
exit           // 退出 MongoDB 系统

5. DDL

use demo                      // 建库,如果 demo 库不存在会创建
db.createCollection('areas')  // 创建 areas 表
show collections
db.areas.drop()               // 删除集合
db.dropDatabase()             // 删除当前的数据库

6. DML

// 向 areas 表插入一条记录
db.areas.insert({'area_name': '日韩'})
db.areas.insert({'area_name': '欧美'})

// 查看 areas 表的所有记录
db.areas.find()

// 查看 areas 表中的特定记录
db.areas.find({'area_name': '日韩'})

// 查看 areas 表中的记录数量
db.areas.countDocuments()

// 对 areas 表排序,trade_date 是表中需要排序的字段,相当于 order by trade_date
// 1 代表升序,-1 代表降序
db.areas.find().sort({ 'trade_date': 1})
db.areas.find().sort({ 'trade_date': 1}).limit(10)      // 查看前 10 条数据
db.areas.find({}, {trade_date: 1, open: 1, close: 1})   // 只查看表中的三个字段
db.areas.findOne();    // 返回符合查询条件的第一条记录

// 删除 areas 表中符合条件的记录
db.areas.deleteMany({})

// 将旧文档换成新文档
db.areas.update(old, new)

7. DCL

8. 执行脚本

mongosh -u root -p -f a.js

9. mongodb 数据库编程操作

npm i -D mongodb
#!/usr/bin/env node

const { MongoClient } = require('mongodb');

const log    = console.log,
      dbName = 'test',
      table  = 'log',
      dbURL  = 'mongodb://root:123@localhost:27017/?authMechanism=DEFAULT';

const client = new MongoClient(dbURL);

async function main() {
  await client.connect();
  log('Connected successfully to server');
  const db = client.db(dbName);
  const collection = db.collection(table);

  // modify data
  const arr = [2, 3];
  await collection.updateMany(
    { "logEvent": { $in: arr}},
    { $rename: {"createAt": "createAtt"}});

  return 'done.';
}

main()
  .then(console.log)
  .catch(console.error)
  .finally(() => client.close());

2017 -  by 王顶. All rights reserved.本站访客人数  人次

results matching ""

    No results matching ""