Javascript

Nodejs-mongodb数据库

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

mongodb

一、简介

Mongodb是一个介于关系数据库和非关系数据库之间的产品(Nosql),是非关系数据库当中功能最丰富,最像关系数据库的,语法有点类似javascript面向对象的查询语言,它是一个面向集合的,模式自由的文档型数据库。Mongodb数据库旨在为 WEB 应用提供可扩展的高性能数据存储解决方案

关系型数据库(Mysql)与非关系型数据库(Mongodb)的结构区别:在这里插入图片描述

二、安装

Windows安装:
下载地址:https://www.mongodb.com/download-center/community

Mac安装地址:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x-tarball/
安装流程命令:
1、下载:https://fastdl.mongodb.org/osx/mongodb-macos-x86_64-4.4.6.tgz
2、解压:tar -zxvf mongodb-macos-x86_64-4.4.tgz
3、移动目录:
mv /xxx/mongodb-macos-x86_64-4.4 /usr/local/mongodb
// 创建数据目录
mkdir -p /usr/local/mongodb/data
mkdir -p /usr/local/ /mongodb/logs
// 启动
mongod --dbpath /usr/local/mongodb/data --logpath /usr/local/mongodb/logs/mongo.log --fork

注意:MongoDB的默认端口号是:27017

三、常用数据库命令(MongoDB)

	1、mongo								回车进入客户端 
	2、show dbs  							查看数据库
	3、show tables/show collections 		查看集合(查看当前库里面的表)
	4、db 									查看当前数据库
	5、use 数据库名							切换或创建数据库   如果数据库存在则切换,不存在则先创建后切换		
		注意:use创建的数据库只是一个空的数据库,没有集合,
			 所以show dbs不显示空数据库可以直接使用db命令来查看当前所在的数据库名称
	6、db.集合名.insert(json对象);			添加一个集合对象并向此集合中添加文档	
	实例:db.c1.insert({name:'user1'});
	7、db.集合名.find();						查看集合
	8、db.dropDatabase();					删除当前数据库(推荐“库跑”用)	删库跑路
	9、db.集合名.drop();						删除集合

四、MongoDB的增删改查

添加单条文档数据:
db.collection.insertOne({ key: value })

添加多条文档数据:
db.collection.insertMany([{}, {}, {}])

可以添加单条也可以多条数据:
db.collection.insert( {} )
db.collection.insert([{}, {} ])

在这里插入图片描述

删除单条文档
db.collection.deleteOne({ key: value })

删除符合条件多条文档
db.collection.deleteMany({key: value})

删除全部数据
collection.deleteMany({});

在这里插入图片描述

查看所有:
db.c1.find();
db.c1.find({});

查询指定条件的字段:
db.集合.find({条件},{字段名:[0/1]}) 0不要字段显示, 1要记录显示
字段值为1取出相对应字段数据 0就表示不取出 _id默认会显示,只有指定为0才不会显示
例: db.c1.find({name:“user11”},{name:1});

在这里插入图片描述

条件表达式查询:
> 年龄大于5的
db.c1.find({age:{$gt:5}});  age > 5
>年龄大于等于5的
db.c1.find({age:{$gte:5}}); age >= 5
>年龄小于5的
db.c1.find({age:{$lt:5}}); age < 5
>年龄小于等于5的
db.c1.find({age:{$lte:5}}); age <= 5
>年龄不等于5的
db.c1.find({age:{$ne:5}}); age != 5
>在一个指定的数值中查询  $in    年龄在不在这几个指定数值当中
db.c1.find({age:{$in:[1,2,3]})
>且关系  and
db.集合.find({age:{$lt:5},name:"user11"})
>或关系 or
db.集合.find({$or:[{条件1},{条件2}]})
db.c1.find({$or:[{age:{$ne:5}},{name: "user11"}]});

在这里插入图片描述

模糊查询

正则
db.集合.find({字段名:/正则/i})
i 不区分大小写
u 支持中文(ES6之后有的)

统计总记录数

统计记录数量 count
db.c1.count();
db.c1.find().count();

排序查询

排序

1 升序 -1 降序 字段
以age字段来升序
db.c1.find().sort({age:1})
以age字段来降序
db.c1.find().sort({age:-1})

分页查询

指定获取几条 skip/limit 分页

db.c1.find().limit(3);
db.c1.find().skip(1).limit(3);

根据条件修改已存在集合中的文档数据

只修改单条文档
db.collection.updateOne({key:value}, { $set: { key: value }})

修改符合条件所有文档数据
db.collection.updateMany({key:value}, { $set: { key: value }})

字段的值的自增和自减
db.collection.updateOne({key:value}, { $inc: { key: 1 }})
db.collection.updateMany({key:value}, { $inc: { key: 1 }})

这篇关于Nodejs-mongodb数据库的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!