概述

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. python print 输出重定向

    简介 print 重定向的功能,很实用,记录一下 参考链接 https://www.cnblogs.com/marsggbo/p/10293484.html code import sys impor ...

  2. java checkbox

    简介 checkbox code /* * @Author: your name * @Date: 2020-11-04 09:44:08 * @LastEditTime: 2020-11-04 09 ...

  3. ShuffleTest java 使用集合的方式进行排序

    简介 使用结合的方式进行排序 TIPS 里面使用了随机打乱shuffle函数. result [0, 1, 10, 16, 20, 34] code import java.util.ArrayLis ...

  4. Web前端入门第 79 问:JavaScript async & await 的异步任务进化之路

    JS 中异步任务随处可见,比如: 1.用户交互的点击.输入 2.网络请求的 fetch.ajax.WebSocket 3.资源中的图片.脚本加载 4.定时任务 setTimeout.setInterv ...

  5. 进阶篇:3.1.1.4)DFM注塑-热熔

    本章目的:了解塑胶件热熔装配方式的设计要点. 1.热熔的概念和原理 热熔是塑胶件与塑胶件或与其他零件,如金属件.印制电路板等进行装配的一种方法.热熔的原理:在塑胶件上有称为热熔柱的局部凸起,在需装配的 ...

  6. ABC348F 题解

    一些注意点: 一看到这种题就应该往 bitset 的方向想. 如果用 bitset,就应该跳脱之前的思维,尝试从最朴素的暴力重新想起. 看到这道题,发现直接做非常的不可做的样子,考虑 bitset. ...

  7. 如何在FastAPI中让后台任务既高效又不会让你的应用崩溃?

    扫描二维码关注或者微信搜一搜:编程智域 前端至全栈交流与成长 发现1000+提升效率与开发的AI工具和实用程序:https://tools.cmdragon.cn/ (一)BackgroundTask ...

  8. 一步一步学习使用LiveBindings(4) 使用LiveBindings同步多个控件的数据

    一步一步学习使用LiveBindings(4) 使用LiveBindings同步多个控件的数据 假定有一个TStringGrid控件和一个TListBox控件,想要同步两个控件的数据显示,比如在TSt ...

  9. Matlab灰色预测模型

    灰色预测模型(Grey Prediction Model)是一种处理少量.不完全信息的预测方法,尤其适用于数据量少(≥4个)且趋势不明显的场景. 核心模型:GM(1,1) 通过累加生成序列挖掘数据内在 ...

  10. 【实战】让AI理解用户的文化背景:开源项目Saga Reader自动翻译的技术实现

    在开源项目麒睿智库(Saga Reader)的0.9.10版本中,完成了两项重要的技术升级:一是为AI处理能力引入了智能语言偏好系统,二是全面升级了底层依赖栈以提升整体稳定性.本文将深入剖析语言偏好功 ...