【Mongodb】入门

database

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

概述

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

 

 

启动Mongodb

1. 按配置文件启动

mongod -config mongod.cfg

2. 指定参数启动

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

3. 安装服务

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 })

支持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

参考文章

Collection Methods — MongoDB Manual

以上是 【Mongodb】入门 的全部内容, 来源链接: utcz.com/z/533092.html

回到顶部