【Mongodb】入门

【Mongodb】入门MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

【Mongodb】入门

概述

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的

MongoDB以BSON结构作为存储和网络存储,BSON是一种二进制的JSON,在JSON基础上扩展,比JSON支持更多的类型,如Date 和 BinData

BSON结构具有以下特性

  • 轻量级
  • 可遍历
  • 高效性

文档(Document):Mongodb以BSON结构存放的一条记录,相当于Row
集合(Collection):存放文档的集合,相当于Table
数据库(Database):存放集合和索引及其他信息的集合

 

配置文件

mongod.cfg

storage:
  # 数据存放的位置
  dbPath: F:DatabaseMongodbData
  journal:
    # 持久化
    enabled: true
#  engine:
#  mmapv1:
#  wiredTiger:

# where to write logging data.
systemLog:
  # 日志的记录形式
  destination: file
  # 是否追加
  logAppend: true
  # 日志的文件(注意是文件)
  path:  F:DatabaseMongodbLogmongod.log

# network interfaces
net:
  # 绑定端口
  port: 27017
  # 绑定Ip
  bindIp: 127.0.0.1

代码100分

 

 

启动Mongodb

1. 按配置文件启动

代码100分mongod -config mongod.cfg

2. 指定参数启动

mongod --dbpath "F:DatabaseMongodbData" --logpath "F:DatabaseMongodbLogmongod.log"

3. 安装服务

代码100分mongod --dbpath "F:DatabaseMongodbData" --logpath "F:DatabaseMongodbLogmongod.log" --serviceName "mongodb" --serviceDisplayName "mongodb" --install

 

连接Mongodb

cmd 执行

1. 默认配置

mongo

2. 连接字符串

mongo mongodb://localhost

 

CRUD操作

Create

1. 插入单个文档

db.logs.insertOne()

var data = {"UserId" : 10, "Operate" : "登录" ,  "CreateTime" : new Date() };
db.logs.insertOne(data);

返回

{
    "acknowledged" : true,  //是否写入成功
    "insertedId" : ObjectId("5e929706fe1792ce954f65f1")     //插入行的Id
}

 

2. 插入多个文档

var data = [
    {"UserId": 10, "Operate": "登录", "CreateTime": new Date() },
    {"UserId": 10, "Operate": "点击首页", "CreateTime": new Date() },
    {"UserId": 10, "Operate": "查看列表", "CreateTime": new Date() }
]
db.logs.insertMany(data);

返回

{
        "acknowledged" : true,
        "insertedIds" : [
                ObjectId("5e9297dbfe1792ce954f65f2"),
                ObjectId("5e9297dbfe1792ce954f65f3"),
                ObjectId("5e9297dbfe1792ce954f65f4")
        ]
}

3. db.collection.insert

insert可以插入单个文档(对象)/ 多个文档(对象的数组)

var data = [
    {"UserId": 10, "Operate": "登录", "CreateTime": new Date() },
    {"UserId": 10, "Operate": "点击首页", "CreateTime": new Date() },
    {"UserId": 10, "Operate": "查看列表", "CreateTime": new Date() }
]
db.logs.insert(data);

返回
单个文档

WriteResult({ "nInserted" : 1 })

多个文档

BulkWriteResult({
        "writeErrors" : [ ],
        "writeConcernErrors" : [ ],
        "nInserted" : 3,
        "nUpserted" : 0,
        "nMatched" : 0,
        "nModified" : 0,
        "nRemoved" : 0,
        "upserted" : [ ]
})

4. 若不存在插入

在日常操作中,经常需要写不存在就写入的操作,在mongodb一种更新机制(upsert),若不存在就写入。

db.logs.update({ "UserId": 20 }, { "UserId": 20, "Operate": "登录", "CreateTime": new Date() }, { upsert: true })

【Mongodb】入门

支持upsert参数的方法

  • db.collection.update()
  • db.collection.updateOne()
  • db.collection.updateMany()
  • db.collection.findAndModify()
  • db.collection.findOneAndUpdate()
  • db.collection.findOneAndReplace()

Read

db.logs.find({"UserId":20});
db.logs.findOne({"UserId":10});

 

Update

1.  更新单个文档

db.logs.updateOne({ "_id": ObjectId("5e92b6d4fe1792ce954f6613") }, { $set: { "CreateTime": new Date() } })

 

2. 更新多个文档

db.logs.updateMany({ "UserId": 10 }, { $set: { "CreateTime": new Date() } })

 

Delete

1. 删除单个文档

db.logs.deleteOne({ "UserId": 20 })

 

2. 删除多个文档

db.logs.deleteMany({ "UserId": 10})

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/9050.html

(0)
上一篇 2023-02-16
下一篇 2023-02-16

相关推荐

  • mysql中key 、primary key 、unique key 与index区别【转】

    mysql中key 、primary key 、unique key 与index区别【转】一、key与primary key区别 解析: KEY wh_logrecord_user_name (user_name) 本表的 字段与 表`user_name`字段建立外键 括号外是建立外键的对

    2023-02-16
    156
  • redis专项进阶课_redis项目

    redis专项进阶课_redis项目通过简单的KV数据库理解Redis 分为访问模块,操作模块,索引模块,存储模块 底层数据结构 除了String类型,其他类型都是一个键对应一个集合,键值对的存储结构采用哈希表 哈希表由多个哈希桶组成,

    2023-05-30
    149
  • mysql错误2059_mysql安装

    mysql错误2059_mysql安装MySQL-错误:2059-Authentication plugin 'caching_sha2_password' cannot be loaded 一 现象 使用

    2023-03-14
    178
  • postgresql启动并打开远程访问「终于解决」

    postgresql启动并打开远程访问「终于解决」首先需要在服务器上安装postgresql(废话),我目前使用的是postgresql-11,所以下面都是使用postgresql-11做例子。 正文开始: 创建pgsql数据库地址:mkdir /…

    2023-02-02
    164
  • 使用Python编写更快的算法

    使用Python编写更快的算法Python是一种强大而简单易学的编程语言。对于许多类别的问题,Python是一种很好的解决方案。然而,以牺牲效率为代价的语言也常常会发生在Python上,因为它往往比编译语言慢得多。在这篇文章中,我们将讨论如何使用Python编写更快的算法,同时保持代码简洁易懂。

    2024-01-03
    107
  • TDSQL|就业难?腾讯云数据库微认证来帮你[通俗易懂]

    TDSQL|就业难?腾讯云数据库微认证来帮你[通俗易懂]6月29日,腾讯云数据库联合CSDN举办的“数启扬帆,智聚人才”峰会顺利举行。本次会议重磅发布了腾讯云联合CSDN推出的数据库工程师能力认证——腾讯云数据库微认证,旨在助力数据库人才体系建设,造福产业

    2023-05-25
    143
  • 用GaussDB合理管控数据资源的几点心得「建议收藏」

    用GaussDB合理管控数据资源的几点心得「建议收藏」一、摘要 项目交付中可能会遇到同时包含核心交易(OLTP)和报表分析(OLAP)的混合业务场景,其中报表分析类业务复杂度高,消耗大量系统资源,但实时性要求较低,而核心交易类业务并发较大,多为简单事务…

    2023-03-14
    152
  • Python 3中map函数的用法

    Python 3中map函数的用法map()函数是Python内置的高阶函数,它接收一个函数和一个可迭代对象作为参数,根据函数对可迭代对象中的每一个元素进行处理,最终返回一个新的可迭代对象。

    2024-06-15
    45

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注