node 连接mongodb 1
Node.js连接MongoDB
一些介绍
mongodb https://www.npmjs.com/package...
github项目地址 https://github.com/mongodb/no...
属于官方提供的mongodb驱动
文档 http://mongodb.github.io/node...
项目主页 http://mongodb.github.io/node...
属于一个轮子,已经造好了
安装mongodb
PS C:\Users\mingm\Desktop\node> npm install mongodb --save
npm WARN saveError ENOENT: no such file or directory, open 'C:\Users\mingm\Desktop\node\package.json'
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN enoent ENOENT: no such file or directory, open 'C:\Users\mingm\Desktop\node\package.json'
npm WARN node No description
npm WARN node No repository field.
npm WARN node No README data
npm WARN node No license field.+ mongodb@3.1.1
added 7 packages from 5 contributors and audited 7 packages in 108.492s
found 0 vulnerabilitiesPS C:\Users\mingm\Desktop\node>
创建数据库
好吧,因为各种版本的缘故,需要使用新的解析器。所以需要设置options的参数
即
useNewUrlParser: true
2.0的驱动程序
旧版本不需要。
PS C:\Users\mingm\Desktop\node> node test.js
数据库连接建立
PS C:\Users\mingm\Desktop\node>
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://127.0.0.1:27017/mingming"; // 连接的urlMongoClient.connect(url, { useNewUrlParser: true }, (err, db) => { // 调用封装好的connect按照url建立和MongoDB之间的连接if (err) {throw err;}console.log("数据库连接建立");db.close();
})
连接以后创建了一个mingming的数据库
> show dbs;
admin 0.000GB
config 0.000GB
local 0.000GB
> use local;
switched to db local
>
查询了一下,还没有,因为没有往里面添加数据
创建集合
即,创建一张表
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://127.0.0.1:27017/mingming"; // 连接的urlMongoClient.connect(url, { useNewUrlParser: true }, (err, db) => { // 调用封装好的connect按照url建立和MongoDB之间的连接if (err) {throw err;}console.log("数据库连接建立");var dbase = db.db('mingming'); // 选择数据库为mingmingdbase.createCollection('site', (err, res) => { // 创建数据库为mingming下的site集合if(err) {throw err;}console.log('创建集合!');db.close();});
});
PS C:\Users\mingm\Desktop\node> node test.js
数据库连接建立
创建集合!
PS C:\Users\mingm\Desktop\node>
看一下这张表
> show dbs;
admin 0.000GB
config 0.000GB
local 0.000GB
mingming 0.000GB
> use mingming
switched to db mingming
> show ceoolection;
2018-07-31T23:12:55.014+0800 E QUERY [js] Error: don't know how to show [ceoolection] :
shellHelper.show@src/mongo/shell/utils.js:1043:11
shellHelper@src/mongo/shell/utils.js:755:15
@(shellhelp2):1:1
> show collections;
site
> db.site.find();
>
CURD
插入数据
PS C:\Users\mingm\Desktop\node> node test.js
文档插入成功!
PS C:\Users\mingm\Desktop\node>
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://127.0.0.1:27017/mingming"; // 连接的urlMongoClient.connect(url, { useNewUrlParser: true }, (err, db) => { // 调用封装好的connect按照url建立和MongoDB之间的连接if (err) {throw err;}var dbo = db.db('mingming');var myobj = { name:"mingming", url:"www.iming.info" };dbo.collection('site').insertOne(myobj, (err, res) => { // mongodb语法 mingming.site.insert(myObj);if(err) {throw err;}console.log("文档插入成功!");db.close();});
});
> db.site.find();
{ "_id" : ObjectId("5b607e4d5b8ced1c5cb8a7e4"), "name" : "mingming", "url" : "www.iming.info" }
{ "_id" : ObjectId("5b607e6ee7b6e82d604d5a4d"), "name" : "mingming", "url" : "www.iming.info" }
>
插入多条数据
> db.site.find().pretty();
{"_id" : ObjectId("5b607e4d5b8ced1c5cb8a7e4"),"name" : "mingming","url" : "www.iming.info"
}
{"_id" : ObjectId("5b607e6ee7b6e82d604d5a4d"),"name" : "mingming","url" : "www.iming.info"
}
{"_id" : ObjectId("5b6080037aa38239e46c0dc1"),"name" : "mingming","url" : "www.iming.info","type" : "cn"
}
{"_id" : ObjectId("5b6080037aa38239e46c0dc2"),"name" : "google","url" : "www.google.com.hk","type" : "un"
}
{"_id" : ObjectId("5b6080037aa38239e46c0dc3"),"name" : "twitter","url" : "www.twitter.com","type" : "un"
}
>
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://127.0.0.1:27017/mingming"; // 连接的urlMongoClient.connect(url, { useNewUrlParser: true }, (err, db) => { // 调用封装好的connect按照url建立和MongoDB之间的连接if (err) {throw err;}var dbo = db.db('mingming');var myobj = [{name:"mingming", url:"www.iming.info" , type:"cn"},{name:"google", url:"www.google.com.hk", type:"un"},{name:"twitter", url:"www.twitter.com", type:"un"},];dbo.collection('site').insertMany(myobj, (err, res) => { // mongodb语法 mingming.site.insert(myObj);if(err) {throw err;}console.log("文档插入成功!");db.close();});
});
PS C:\Users\mingm\Desktop\node> node test.js
文档插入成功!
PS C:\Users\mingm\Desktop\node>
查询数据
PS C:\Users\mingm\Desktop\node> node test.js
[ { _id: 5b607e4d5b8ced1c5cb8a7e4,name: 'mingming',url: 'www.iming.info' },{ _id: 5b607e6ee7b6e82d604d5a4d,name: 'mingming',url: 'www.iming.info' },{ _id: 5b6080037aa38239e46c0dc1,name: 'mingming',url: 'www.iming.info',type: 'cn' },{ _id: 5b6080037aa38239e46c0dc2,name: 'google',url: 'www.google.com.hk',type: 'un' },{ _id: 5b6080037aa38239e46c0dc3,name: 'twitter',url: 'www.twitter.com',type: 'un' } ]
PS C:\Users\mingm\Desktop\node>
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://127.0.0.1:27017/mingming"; // 连接的urlMongoClient.connect(url, { useNewUrlParser: true }, (err, db) => { // 调用封装好的connect按照url建立和MongoDB之间的连接if (err) {throw err;}var dbo = db.db('mingming');dbo.collection('site').find({}).toArray((err, result) => { // 使用find()查询完成以后,使用toArray将查询到的数据完成回调if (err) {throw err;}console.log(result); // 将回调的结果输出(由于结果是暂时保存在内存中的,确保有足够大的内存保存,或者使用流也可)db.close();});
});;
> db.site.find().pretty();
{"_id" : ObjectId("5b607e4d5b8ced1c5cb8a7e4"),"name" : "mingming","url" : "www.iming.info"
}
{"_id" : ObjectId("5b607e6ee7b6e82d604d5a4d"),"name" : "mingming","url" : "www.iming.info"
}
{"_id" : ObjectId("5b6080037aa38239e46c0dc1"),"name" : "mingming","url" : "www.iming.info","type" : "cn"
}
{"_id" : ObjectId("5b6080037aa38239e46c0dc2"),"name" : "google","url" : "www.google.com.hk","type" : "un"
}
{"_id" : ObjectId("5b6080037aa38239e46c0dc3"),"name" : "twitter","url" : "www.twitter.com","type" : "un"
}
>
查询指定条件的数据
PS C:\Users\mingm\Desktop\node> node test.js
[ { _id: 5b607e4d5b8ced1c5cb8a7e4,name: 'mingming',url: 'www.iming.info' },{ _id: 5b607e6ee7b6e82d604d5a4d,name: 'mingming',url: 'www.iming.info' },{ _id: 5b6080037aa38239e46c0dc1,name: 'mingming',url: 'www.iming.info',type: 'cn' } ]
PS C:\Users\mingm\Desktop\node>
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://127.0.0.1:27017/mingming"; // 连接的urlMongoClient.connect(url, { useNewUrlParser: true }, (err, db) => { // 调用封装好的connect按照url建立和MongoDB之间的连接if (err) {throw err;}var dbo = db.db('mingming');var whereStr = {"name":"mingming"}; // 查询条件dbo.collection('site').find(whereStr).toArray((err, result) => { // 使用find()查询完成以后,使用toArray将查询到的数据完成回调if (err) {throw err;}console.log(result); // 将回调的结果输出(由于结果是暂时保存在内存中的,确保有足够大的内存保存,或者使用流也可)db.close();});
});;
更新数据
PS C:\Users\mingm\Desktop\node> node test.js
文档更新成功
PS C:\Users\mingm\Desktop\node>
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://127.0.0.1:27017/mingming"; // 连接的urlMongoClient.connect(url, { useNewUrlParser: true }, (err, db) => { // 调用封装好的connect按照url建立和MongoDB之间的连接if (err) {throw err;}var dbo = db.db('mingming');var whereStr = {"name":"mingming"}; // 查询条件var updateStr = {$set: {"url": "AmingA"}};dbo.collection('site').updateOne(whereStr, updateStr, (err, result) => { // 使用find()查询完成以后,使用toArray将查询到的数据完成回调if (err) {throw err;}console.log('文档更新成功'); // 将回调的结果输出(由于结果是暂时保存在内存中的,确保有足够大的内存保存,或者使用流也可)db.close();});
});;
> db.site.find({"name":"mingming"}).pretty();
{"_id" : ObjectId("5b607e4d5b8ced1c5cb8a7e4"),"name" : "mingming","url" : "AmingA"
}
{"_id" : ObjectId("5b607e6ee7b6e82d604d5a4d"),"name" : "mingming","url" : "www.iming.info"
}
{"_id" : ObjectId("5b6080037aa38239e46c0dc1"),"name" : "mingming","url" : "www.iming.info","type" : "cn"
}
>
mongodb的更新
> db.site.update({"name":"mingming"}, {$set: {"url":""}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.site.find({"name":"mingming"});
{ "_id" : ObjectId("5b607e4d5b8ced1c5cb8a7e4"), "name" : "mingming", "url" : "" }
{ "_id" : ObjectId("5b607e6ee7b6e82d604d5a4d"), "name" : "mingming", "url" : "www.iming.info" }
{ "_id" : ObjectId("5b6080037aa38239e46c0dc1"), "name" : "mingming", "url" : "www.iming.info", "type" : "cn" }
>
更新多条数据
PS C:\Users\mingm\Desktop\node> node test.js
{ n: 3, nModified: 3, ok: 1 }
PS C:\Users\mingm\Desktop\node>
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://127.0.0.1:27017/mingming"; // 连接的urlMongoClient.connect(url, { useNewUrlParser: true }, (err, db) => { // 调用封装好的connect按照url建立和MongoDB之间的连接if (err) {throw err;}var dbo = db.db('mingming');var whereStr = {"name":"mingming"}; // 查询条件var updateStr = {$set: {"url": ""}};dbo.collection('site').updateMany(whereStr, updateStr, (err, result) => { // 使用find()查询完成以后,使用toArray将查询到的数据完成回调if (err) {throw err;}console.log(result.result); // 将回调的结果输出(由于结果是暂时保存在内存中的,确保有足够大的内存保存,或者使用流也可)db.close();});
});;
> db.site.find({"name":"mingming"});
{ "_id" : ObjectId("5b607e4d5b8ced1c5cb8a7e4"), "name" : "mingming", "url" : "" }
{ "_id" : ObjectId("5b607e6ee7b6e82d604d5a4d"), "name" : "mingming", "url" : "" }
{ "_id" : ObjectId("5b6080037aa38239e46c0dc1"), "name" : "mingming", "url" : "", "type" : "cn" }
>
删除数据
同样deleteOne和deleteMany()不在阐述
排序
使用sort()完成排序
PS C:\Users\mingm\Desktop\node> node test.js
[ { _id: 5b6080037aa38239e46c0dc2,name: 'google',url: 'www.google.com.hk',type: 'un' },{ _id: 5b6080037aa38239e46c0dc3,name: 'twitter',url: 'www.twitter.com',type: 'un' },{ _id: 5b6080037aa38239e46c0dc1,name: 'mingming',url: '',type: 'cn' },{ _id: 5b607e4d5b8ced1c5cb8a7e4, name: 'mingming', url: '' },{ _id: 5b607e6ee7b6e82d604d5a4d, name: 'mingming', url: '' } ]
PS C:\Users\mingm\Desktop\node>
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://127.0.0.1:27017/mingming"; // 连接的urlMongoClient.connect(url, { useNewUrlParser: true }, (err, db) => { // 调用封装好的connect按照url建立和MongoDB之间的连接if (err) {throw err;}var dbo = db.db('mingming');var mysort = { type:-1 }; // 降序dbo.collection('site').find().sort(mysort).toArray((err, result) => {if (err) {throw err;}console.log(result); // 将回调的结果输出(由于结果是暂时保存在内存中的,确保有足够大的内存保存,或者使用流也可)db.close();});
});;
mongodb语法
> db.site.find({}).sort({type:-1});
{ "_id" : ObjectId("5b6080037aa38239e46c0dc2"), "name" : "google", "url" : "www.google.com.hk", "type" : "un" }
{ "_id" : ObjectId("5b6080037aa38239e46c0dc3"), "name" : "twitter", "url" : "www.twitter.com", "type" : "un" }
{ "_id" : ObjectId("5b6080037aa38239e46c0dc1"), "name" : "mingming", "url" : "", "type" : "cn" }
{ "_id" : ObjectId("5b607e4d5b8ced1c5cb8a7e4"), "name" : "mingming", "url" : "" }
{ "_id" : ObjectId("5b607e6ee7b6e82d604d5a4d"), "name" : "mingming", "url" : "" }
>
分页
使用limit,分页和排序使用的统统是通道(一个来自linux的概念)
PS C:\Users\mingm\Desktop\node> node test.js
[ { _id: 5b607e4d5b8ced1c5cb8a7e4, name: 'mingming', url: '' },{ _id: 5b607e6ee7b6e82d604d5a4d, name: 'mingming', url: '' } ]
PS C:\Users\mingm\Desktop\node>
跳过指定条数
PS C:\Users\mingm\Desktop\node> node test.js
[ { _id: 5b6080037aa38239e46c0dc1,name: 'mingming',url: '',type: 'cn' },{ _id: 5b6080037aa38239e46c0dc2,name: 'google',url: 'www.google.com.hk',type: 'un' } ]
PS C:\Users\mingm\Desktop\node>
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://127.0.0.1:27017/mingming"; // 连接的urlMongoClient.connect(url, { useNewUrlParser: true }, (err, db) => { // 调用封装好的connect按照url建立和MongoDB之间的连接if (err) {throw err;}var dbo = db.db('mingming');dbo.collection('site').find().skip(2).limit(2).toArray((err, result) => {if (err) {throw err;}console.log(result); // 将回调的结果输出(由于结果是暂时保存在内存中的,确保有足够大的内存保存,或者使用流也可)db.close();});
});;
随机读取一条数据
PS C:\Users\mingm\Desktop\node> node test.js
[ { _id: 5b6080037aa38239e46c0dc2,name: 'google',url: 'www.google.com.hk',type: 'un' } ]
[ { _id: 5b6080037aa38239e46c0dc1,name: 'mingming',url: '',type: 'cn' } ]
[ { _id: 5b6080037aa38239e46c0dc2,name: 'google',url: 'www.google.com.hk',type: 'un' } ]
[ { _id: 5b607e6ee7b6e82d604d5a4d, name: 'mingming', url: '' } ]
[ { _id: 5b607e4d5b8ced1c5cb8a7e4, name: 'mingming', url: '' } ]
[ { _id: 5b6080037aa38239e46c0dc1,name: 'mingming',url: '',type: 'cn' } ]
[ { _id: 5b607e4d5b8ced1c5cb8a7e4, name: 'mingming', url: '' } ]
[ { _id: 5b607e6ee7b6e82d604d5a4d, name: 'mingming', url: '' } ]
[ { _id: 5b607e6ee7b6e82d604d5a4d, name: 'mingming', url: '' } ]
[ { _id: 5b607e4d5b8ced1c5cb8a7e4, name: 'mingming', url: '' } ]
PS C:\Users\mingm\Desktop\node> node test.js
[ { _id: 5b6080037aa38239e46c0dc2,name: 'google',url: 'www.google.com.hk',type: 'un' } ]
[ { _id: 5b6080037aa38239e46c0dc1,name: 'mingming',url: '',type: 'cn' } ]
[ { _id: 5b6080037aa38239e46c0dc3,name: 'twitter',url: 'www.twitter.com',type: 'un' } ]
[ { _id: 5b607e6ee7b6e82d604d5a4d, name: 'mingming', url: '' } ]
[ { _id: 5b607e6ee7b6e82d604d5a4d, name: 'mingming', url: '' } ]
[ { _id: 5b6080037aa38239e46c0dc1,name: 'mingming',url: '',type: 'cn' } ]
[ { _id: 5b6080037aa38239e46c0dc1,name: 'mingming',url: '',type: 'cn' } ]
[ { _id: 5b607e4d5b8ced1c5cb8a7e4, name: 'mingming', url: '' } ]
[ { _id: 5b6080037aa38239e46c0dc3,name: 'twitter',url: 'www.twitter.com',type: 'un' } ]
[ { _id: 5b6080037aa38239e46c0dc3,name: 'twitter',url: 'www.twitter.com',type: 'un' } ]
PS C:\Users\mingm\Desktop\node>
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://127.0.0.1:27017/mingming"; // 连接的urlMongoClient.connect(url, { useNewUrlParser: true }, (err, db) => { // 调用封装好的connect按照url建立和MongoDB之间的连接if (err) {throw err;}var dbo = db.db('mingming');for(var i=0; i<10; i++){dbo.collection('site').aggregate([{$sample: {size:1}}]).toArray((err, result) => {if (err) {throw err;}console.log(result); // 将回调的结果输出(由于结果是暂时保存在内存中的,确保有足够大的内存保存,或者使用流也可)});};db.close();
});;
使用的同样是管道
博客
www.iming.info
node 连接mongodb 1相关推荐
- node 连接mongodb
Node.js连接MongoDB 一些介绍 mongodb https://www.npmjs.com/package/mongodb github项目地址 https://github.com/mo ...
- 使用node连接MongoDB的工具安装及配置
MongoDB的使用 Mac安装: https://www.cnblogs.com/weixuqin/p/7258000.html MongoDB的可视化工具: https://robomongo.o ...
- 跟我一起用node-express搭建一个小项目(node连接mongodb)[三]
数据库虽然安装并启动成功了,但我们需要连接数据库后才能使用数据库. 怎么才能在 Node.js 中使用 MongoDB 呢? 我们使用官方提供的 node-mongodb-native 驱动模块,打开 ...
- 【node】node连接mongodb操作数据库
1.下载第三方模块mongodb cnpm install mongodb --save 2.检测是否连接成功 1.引入第三方模块mongodb并创建一个客户端const MongoClient = ...
- Node连接MySQL并封装其增删查改
Node连接Mysql 说到node,可能大家会想到MOngoDB作为数据库,这里将会介绍node与mysql的连接,并分享了封装好的实例代码,在项目开发中可直接使用.下一篇博客将会讲node连接Mo ...
- Node.js详解(四):连接MongoDB
文章目录 一.安装MongoDB访问驱动 二.连接数据库 三.添加数据 四.添加多条数据 五.修改数据 六.查询数据 1.查询单条记录 2.查询多条记录 七.删除数据 八.完整示例代码 1.路由 Ap ...
- 【Part2】用JS写一个Blog (node + vue + mongoDB)
[Part1]用JS写一个Blog (node + vue + mongoDB) 上一节前后端项目分别初始化完成,这一小节我就从后端项目开始写.实现mongoDB数据库的连接. 整理后端目录 下面是通 ...
- 为一个 iOS 应用编写一个简单的 Node.js/MongoDB Web 服务
原文链接:https://github.com/nixzhu/dev-blog/blob/master/2014-04-21-write-a-simple-nodejs-mongodb-web-ser ...
- node+express+mongodb初体验
从去年11月份到现在,一直想去学习nodejs,在这段时间体验了gulp.grunt.yeomen,fis,但是对于nodejs深入的去学习,去开发项目总是断断续续. 今天花了一天的时间,去了解整理整 ...
最新文章
- VS新建类自动添加版本注释
- Redis:事件驱动(IO多路复用)
- Codeforces A - Bear and Prime 100(交互题)
- 深入理解 MySQL ——锁、事务与并发控制
- asp.net MVC 权限设计(续)
- 一个老者给年轻人的几个忠告
- android windowmanager 无法传递事件_面试常客:Intent 能传递多大 Size 的数据?| 附阿里的建议方案!...
- ASP.NET适合做互联网吗,适合做电子商务平台吗?
- 识别速度3.6ms/帧!人像抠图、工业质检、遥感识别,用这一个分割模型就够了...
- [转载] python string 字符串转换为字典 dict
- ESTORE OPENCART 清爽现代主题模板 ABC-0063
- C++面向对象程序设计实践——任务与指导书(1)
- GRACE数据介绍及下载
- 如何在手机上查银行卡号?进来手把手教你!
- python聚类系数_NetworkX 计算聚类系数的Python实现
- 网工行业里的多面手,数据通信工程师2022年最新系统学习路线整理
- html中p元素添加超链接_如何在HTML中添加超链接
- 杨震霆(carboy) -传奇人物
- HTML5(李炎恢)学习笔记一 ------------- HTML5的概述
- 第七天之多态原理探究