概述

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:\Database\Mongodb\Data
journal:
# 持久化
enabled: true
# engine:
# mmapv1:
# wiredTiger: # where to write logging data.
systemLog:
# 日志的记录形式
destination: file
# 是否追加
logAppend: true
# 日志的文件(注意是文件)
path: F:\Database\Mongodb\Log\mongod.log # network interfaces
net:
# 绑定端口
port: 27017
# 绑定Ip
bindIp: 127.0.0.1

启动Mongodb

1. 按配置文件启动

mongod -config mongod.cfg

2. 指定参数启动

mongod --dbpath "F:\Database\Mongodb\Data" --logpath "F:\Database\Mongodb\Log\mongod.log"

3. 安装服务

mongod --dbpath "F:\Database\Mongodb\Data" --logpath "F:\Database\Mongodb\Log\mongod.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 })

支持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://www.cnblogs.com/WilsonPan/p/12685393.html

【Mongodb】入门的更多相关文章

  1. MongoDB 入门之基础 DCL

    此文章主要记录部分主要的 MongoDB 的 DCL 操作. MongoDB 默认不需要用户名和密码就可以用 mongodb.exe 登录 一.开启 MonogoDB 的权限模式 修改 MongoDB ...

  2. MongoDB入门三:MongoDB shell

    MongoDB shell MongDB shell是一个功能完备的Javascript解释器,可以运行Javascript程序.也可以用于连接MongoDB服务器,执行脚本,对数据库进行操作.类似于 ...

  3. MongoDB 入门之查询(find)

    MongoDB 入门之查询(find) 1. find 简介 (1)find的第一个参数决定了要返回哪些文档. 空的查询文档会匹配集合的全部内容.默认就是{}.结果将批量返回集合c中的所有文档. db ...

  4. MongoDB入门简介

    MongoDB入门简介 http://blog.csdn.net/lolinzhang/article/details/4353699 有关于MongoDB的资料现在较少,且大多为英文网站,以上内容大 ...

  5. mongodb入门教程二

    title: mongodb入门教程二 date: 2016-04-07 10:33:02 tags: --- 上一篇文章说了mongodb最基本的东西,这边博文就在深入一点,说一下mongo的一些高 ...

  6. mongodb入门教程

    title: mongodb入门教程 date: 2016-04-06 14:47:18 tags: --- 为什么要认识呢,因为这玩意就一傻逼 借用一下百科的介绍 MongoDB 是一个介于关系数据 ...

  7. MongoDb 入门教程

    MongoDb 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 它是可扩展的高性能数据存储解决方案,经常被用于非关系型数据的存储,能存储海量的数据. 常 ...

  8. MongoDB入门必读(概念与实战并重)

    MongoDB入门必读(概念与实战并重) 一.概述 MongoDB是一个基于分布式文件存储的数据库开源项目.由C++语言编写.旨在为WEB应用提供可护展的高性能数据存储解决方案. MongoDB是一个 ...

  9. mongodb入门很简单(3)

     ##简单的mongodb入门命令## 1.show dbs;      //查看当前数据库 2.use databaseName;         //选库 3.show tables/collec ...

  10. MongoDB入门实践

    MongoDB入门实践 简单介绍MongoDB,包括MongoDB的使用场景.和MySQL的对比.安装部署.Java客户端访问及总结 MongoDB? 我们遵循需求驱动技术的原则,通过一个场景来引入M ...

随机推荐

  1. curl error: Problem with the SSL CA cert (path access rights?) 的解决方法

    github上的解决方案 https://github.com/archlinuxfr/yaourt/issues/287 curl_easy_perform()返回值说明 在移植别人的sdk的时候发 ...

  2. vs 运行的时候产生伴随cmd窗口

    简介 很多程序运行的时候,需要输出调试信息.如果没有伴随cmd窗口的话,输出的信息很难被看到 参考链接 https://blog.csdn.net/weixin_39278265/article/de ...

  3. ETL中RESTful API 组件的用法

    一.ETL是什么 ETL,全称为Extract-Transform-Load,即数据提取(Extract).数据转换(Transform)和数据加载(Load).这是数据仓库中数据处理的重要过程.ET ...

  4. 『OpenCV-Python』加载网络图片

    点赞 + 关注 + 收藏 = 学会了 前面介绍过在 OpenCV 里可以通过 cv2.imread 读取本地图片,但这个方法无法读取网络图片. 读取网络图片:cv2.imdecode 在 OpenCV ...

  5. 免费的PPT模版--九五小庞

    PPT模板: www.1ppt.com/moban/         行业PPT模板:www.1ppt.com/hangye/ 节日PPT模板:www.1ppt.com/jieri/          ...

  6. idea中运行java程序报Error:(4,25) --九五小庞

    报错信息如下 在网上找了一通,终于找到了解决的方法 参考网上教程安装lomobok插件,pom文件添加依赖之后 出现  Error:(3, 14) java: 程序包lombok不存在 错误 解决方案 ...

  7. Centos使用nginx实现挂载本地yum源

    前言:生产环境中由于一些安全问题,无法使用外网,只能在内网运行,无法访问外部yum源,这时候对于一些环境的安装及其不方便,故使用内部挂载yum源方式解决. 1.环境 操作系统版本 2.关闭selinu ...

  8. linux 合集

    sed 命令(1) sed 命令(2) linux 笔记 (1) linux 笔记 (2) linux 笔记 (3) find 命令

  9. MySQL 24 MySQL是怎么保证主备一致的?

    MySQL主备的基本原理 状态1中,客户端读写都是直接访问节点A,节点B只是将节点A的更新同步过来在本地执行.当需要主备切换时,就变成状态2. 状态1中没有直接访问节点B,但仍然建议把节点B设置成只读 ...

  10. OCI编程基础篇(二) 创建环境、分配句柄

    访问www.tomcoding.com网站,学习Oracle内部数据结构,详细文档说明,下载Oracle的exp/imp,DUL,logminer,ASM工具的源代码,学习高技术含量的内容. 创建OC ...