node - MongoDB数据库
mongod
安装配置
在
Mongodb
官网下载最新版本的Mongodb下载地址下载
msi
的window
安装包,可以装到C盘或者D盘目录下配置
由于我是安装在D盘的环境下
D:\Program Files (x86)\MongoDB\Server\3.2\bin所以在bin文件夹下找到mongod.exe命令,然后通过管理员执行
mongod --dbpath x路径x
,路径可以是任何地方,我这里选择在D盘的MongoDB目录下,当然路径不要包含特殊的字符串,比如Program Files (x86)
也不行mongod --dbpath D:\mongodb\data\db
命令
mongo 进入mongo环境 show dbs :查看当前的数据库列表 show collections:查看当前库当中的集合列表 use 数据库名 : 使用指定的库 db:查看当前所在的数据库 db.dropDatabase:删除当前的数据库
增
use 数据库名: 新增数据库 db.集合名,insert({name:"zxr"}) //新增一个集合里面的文档{name:"zxr"} db.score.insert({userName:"xiaozhang"}):的score集合当中增加了一个文档 mongoimport --db scoreList --collection score --file E:\1924\Lession04\data --drop --db:指定数据库 --collection:指定集合 --file:指定导入的文件 --drop:可省略。如果使用该属性则是覆盖,否则是追加。
删 remove
db.data.remove({}) : 删除所有文档 db.data.remove({name:"997"}) : 删除name:"997" db.data.remove({age:{$gte:16}},{justOne:true}):删除年龄大于等于16的符合条件的第一个文档。
改 update
db.data.update({name:"zhangsan"},{age:10}) 完整替换 把{name:"zhangsan"}的文档替换成{age:10}的文档 db.data.update({userName:"王五"},{$set:{sex:"女"}}) :将名字为王五的性别修改为女 db.data.update({sex:"男"},{$set:{age:18}}):只能修改一条。 db.data.update({sex:"女"},{$set:{age:16}},{multi:true}):更改多条。 db.data.update({userName:"二哈"},{$inc:{age:1}}):根据条件,将年龄加1
查 find
db.集合名.find() : 查找当前库下集合名的文档列表 db.集合名.count():指定集合文档数量 db.集合名.find().count() : 根据条件查找数量 db.集合名,find({name:"zxr"}) :查找name:zxr的数据 db.集合名.find({sex:"女"})):查找性别为女的集合。 db.集合名.find({userName:/常/}):模糊查找。查找名字当中包含常 db.集合名.find({"score.yuwen":2}):查找语文成绩为2的文档 db.集合名.find({age:{$gt:12}}):查找年龄大于12 $gt:大于 $gte:大于等于 $lt:小于 $lte:小于等于 $ne db.集合名.find({age:{$ne:12},sex:"女"}):多条件,年龄不等于12,性别为女 或 db.集合名.find({$or:[{sex:"女"},{age:12}]}):查找性别为女,或年龄为12的记录 db.集合名.find().skip(2):跳指指定的文档数( 跳过前两行文档) db.集合名.find().limit(3):取指定的文档数(取前三行文档) db.集合名.find().sort({age:-1}):按照年龄的倒序。1正序,-1倒序 db.集合名.find().sort({age:-1,"score.yuwen":1}):按照年龄的倒序,如果年龄相同,按照语文的正序
分页
已知: 1、pageIndex:指定的页数 2、count:文档数量 3、pageSum:总页数 pageSum = Math.ceil(count/pageNum) 4、pageNum:每页显示的条数 求: 每页要显示的内容。 问:总条数9,每页2条,每一页的内容如何求 skip = (pageIndex-1)*pageNum; 1、 db.score.find().sort({age:-1}).skip(0).limit(2) 2、 db.score.find().sort({age:-1}).skip(2).limit(2) 3、 db.score.find().sort({age:-1}).skip(4).limit(2) 4、 db.score.find().sort({age:-1}).skip(6).limit(2) 4、 db.score.find().sort({age:-1}).skip(8).limit(2)
node 操作数据库
初始化
npm init -y
下载mongodb
npm install mongodb -S cnpm install mongodb -S
引入
const mongodb = require("mongodb"); const mongoClient = mongodb.MongoClient;// 端,可以连接数据库。从而实现对数据的操作 mongoClient.connect("mongodb://127.0.0.1:27017",function(err,client){ client.db();// 指定你要操作的数据库 })
挂载数据库
创建一个文件夹 mongo
mongod --dbpath
挂载将cmd最小化
结果:It looks like you are trying to access MongoDB over HTTP on the native driver port.
1.连接数据库
var MongoClient = require('mongodb').MongoClient; //结尾是选择数据库名 var DB_CONN_STR = 'mongodb://localhost:27017/wscats'; MongoClient.connect(DB_CONN_STR, function(err, db) { console.log("连接成功!"); });
2.查询数据
注意查询回来的结果需要toArray来遍历处理
var MongoClient = require('mongodb').MongoClient; var DB_CONN_STR = 'mongodb://localhost:27017/wscats'; MongoClient.connect(DB_CONN_STR, function(err, db) { console.log("连接成功!"); //选中age集合,并用find方法把结果集拿回来进行处理 db.collection("age").find({title: "cba"}).toArray(function(err, result) { if (err) { console.log('Error:' + err); return; } console.log(result); }); });
经过测试,读取大于100条的时候会出现报错官网解释,可以尝试用forEach
代替
db.collection('pokemon').find({}) .forEach(function(item){ console.log(item) })
查询ID
查询自动生成的ObjectId
var ObjectId = require('mongodb').ObjectId; let _id = ObjectId("5bcae50ed1f2c2f5e4e1a76a"); db.collection('xxx').find({ "_id": _id }).forEach(function (item) { console.log(item) })
3.插入数据
insert函数第一个参数是需要插入的值(可以一个也可以多个),第二个参数是接受一个回调函数,当值插入成功后回返回插入值得一些关键信息,比如_id
var MongoClient = require('mongodb').MongoClient; var DB_CONN_STR = 'mongodb://localhost:27017/wscats'; MongoClient.connect(DB_CONN_STR, function(err, db) { console.log("连接成功!"); const db = client.db("demo"); db.collection("age").insert([ { title: "插入的值A" }, { title: "插入的值B" } ], function(err, result) { if (err) { console.log('Error:' + err); return; } console.log(result) }) });
4.更新数据
注意如果不加$set就是完全替换原来的那份(没有设置的属性值将会丢失),加上$set则只是更新对应的属性值,其余不做改变
var MongoClient = require('mongodb').MongoClient; var DB_CONN_STR = 'mongodb://localhost:27017/wscats'; MongoClient.connect(DB_CONN_STR, function(err, db) { console.log("连接成功!"); db.collection("age").update({ "_id": 1 }, { $set: { title: "你好,世界", skill: "js" } }, function(err, result) { if (err) { console.log('Error:' + err); return; } //console.log(result); }); });
5.删除数据
var MongoClient = require('mongodb').MongoClient; var DB_CONN_STR = 'mongodb://localhost:27017/wscats'; MongoClient.connect(DB_CONN_STR, function(err, db) { console.log("连接成功!"); db.collection("age").remove({ "_id": 1 }, function(err, result) { if (err) { console.log('Error:' + err); return; } //console.log(result); //关闭数据库 db.close(); }); });
6.关闭数据库
db.close();
相关推荐
lbyd0 2020-11-17
zhushenghan 2020-11-09
sunnnyduan 2020-10-16
sdmzhu 2020-09-01
mkhhxxttxs 2020-09-16
xiaohai 2020-09-16
apexlj 2020-08-16
BigYellow 2020-11-16
sushuanglei 2020-11-12
我心似明月 2020-11-09
大秦铁骑 2020-08-19
thatway 2020-08-19
lovecodeblog 2020-08-19
codetyper 2020-08-16
MongoDB数据库 2020-08-16
csuzxm000 2020-08-02
flyDeDog 2020-06-14
不要皱眉 2020-10-14