Go教程

MongoDB基础

本文主要是介绍MongoDB基础,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

基础入门

1. MongoDB:一种非关系型数据库,偶数版本为稳定版,奇数版本为开发版。

2. MongoDB对于32位系统支持不佳,所以3.2版本以后没有再对32位系统的支持。

3. MongoDB中,数据库(database)->集合(collections)->文档(document),单位级别逐级变小。

4. 下载地址:Downloads for win32

5. windows64位4.2.16版本安装:

  • 下载安装包后直接安装。
  • 配置bin目录环境变量
  • 直接命令mongod启动mongodb服务会默认在C盘下寻找data\db文件夹,需要自行创建
  • 或者指定端口和路径:mongod --dbpath 数据库路径 --port 端口

  •  mongodb服务成功启动

  •  cmd窗口输入mongo命令连接数据库

基本命令

在MongoDB中,数据库和集合都不需要手动创建,当我们创建文档时,如果文档所在的集合或数据库不存在会自动创建数据库和集合

官网操作文档:https://docs.mongodb.com/manual/crud/

1. 显示当前的所有数据库

  • show dbs
  • show databases

2. 进入到指定的数据库中

  • use 数据库名

3. 显示当前使用的数据库

  • db

4. 显示数据库中所有的集合

  •  show collections

5. 新增文档

当我们向集合中插入文档时,如果没有给文档指定_id属性,则数据库会自动为文档添加_id,该属性用来作为文档的唯一标识,_id我们可以自己指定,如果我们指定了数据库就不会在添加了,如果自己指定_id 也必须确保它的唯一性。

  • ​db.collection.insertOne({ })​:插入一个文档对象
  • db.collection.insertMany([ ]):插入多个文档对象
  • db.collection.insert():向集合中插入一个或多个文档
db.products.insertOne( { _id: 10, item: "box", qty: 20 } );   

db.products.insertMany( [
    { _id: 10, item: "large box", qty: 20 },
    { _id: 11, item: "small box", qty: 55 },
    { _id: 12, item: "medium box", qty: 30 }
] );

6. 查询文档

  • db.collection.find({属性:值}):用来查询所有符合条件的文档,返回的是一个数组
  • db.collection.findOne({属性:值}):用来查询集合中符合条件的第一个文档对象
  • db.collection.find({}).count():查询所有结果的数量

7. 修改文档

  • db.collection.update(条件,新对象)
    • 默认情况下会使用新对象来替换旧对象,只会修改第一个满足条件的对象
    • 如果需要修改指定的属性,需要使用“修改操作符”来完成修改
      • $set 可以用来修改文档中的指定属性
      • $unset 可以用来删除文档的指定属性
  • db.collection.updateMany():同时修改多个符合条件的文档
  • db.collection.updateOne():修改一个符合条件的文档   
  • db.collection.replaceOne():替换一个文档

8. 删除文档

  • db.collection.remove():删除一个或多个,可以第二个参数传递一个true,则只会删除一个;如果传递一个空对象作为参数,则会删除所有的,一个接一个循环删除,效率低。
  • db.collection.deleteOne():删除一个
  • db.collection.deleteMany():删除多个
  • db.collection.drop():直接删除集合,当数据库下不存在集合,自动删除数据库
  • db.dropDatabase()  :删除数据库

9. 替换文档

  • db.collection.remove(旧对象,新对象) :用新对象替换旧对象

10. sort({key:1/-1})排序函数,1表示升序,-1表示降序。  

11. db.collection.find({条件},{key:1/0}):筛选查出的字段,1表示显示,0表示不显示

 Mongoose介绍

1. Mongoose是一个对象文档模型(ODM)库,它对Node原生的MongoDB模块进行了进一步的优化封装,并提供了更多的功能。

2. Mongoose优点:

  • 可以为文档创建一个模式结构(Schema)
  • 可以对模型中的对象/文档进行验证
  • 数据可以通过类型转换转换为对象模型
  • 可以使用中间件来应用业务逻辑挂钩
  • 比Node原生的MongoDB驱动更容易

3. 提供的三个对象:

  • Schema(模式对象):定义约束了数据库中的文档结构
  • Model:作为集合中所有文档的表示,相当于MongoDB数据库中集合Collection
  • Document:表示集合中的一个具体文档

4. node命令下载安装:npm i mongoose --save

5. 连接测试:

  • MongoDB数据库,一般情况下,只需要连接一次,连接一次以后,除非项目停止服务器关闭,否则连接一般不会断开
  • 在mongoose对象中,有一个属性叫做connection,该对象表示的就是数据库连接,可以用来监听MongoDB数据库的连接状态
//引入
var mongoose = require("mongoose");
//连接数据库mongoose.connect('mongodb://数据库的ip地址:端口号/数据库名'
mongoose.connect("mongodb://127.0.0.1/mongoose_test" , { useMongoClient: true});
//数据库连接成功的事件
mongoose.connection.once("open",function(){
	console.log("数据库连接成功~~~");
});
//数据库断开的事件
mongoose.connection.once("close",function(){
	console.log("数据库连接已经断开~~~");
});
//断开数据库连接(一般不需要调用)
mongoose.disconnect();

6. Mongoose中文文档:http://www.mongoosejs.net/docs/index.html

这篇关于MongoDB基础的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!