Node js MongoDB简单操作
//win7环境下node要先安装MongoDB的相关组件(非安装MongoDB数据库),在cmd命令行进入node项目目录后执行以下语句
//npm install mongodb //创建连接
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/testdb"; //链接 testdb 库,不存在则创建
MongoClient.connect(url, function(error, db) {
if (error) throw error;
console.log("testdb 数据库已创建!"); var database = db.db("testdb"); //创建集合(表),已有不会报错
database.createCollection('testtable', function (error, resulat) {
if (error) throw error;
console.log("testtable 集合已创建!");
}); //向testtable表插入文档(条数据)
var testdata = { testfield1: "node mongodb", testfield2: "test val" };
database.collection("testtable").insertOne(testdata, function(error, result) {
if (error) throw error;
console.log("文档插入成功");
}); //向testtable表插入多条数据
var testdatas = [
{ testfield1: 'testval1', testfield2: 'testval2', testfield3: '1'},
{ testfield1: 'testval11', testfield2: 'testval22', testfield3: '2'},
{ testfield1: 'testval111', testfield2: 'testval222', testfield3: '3'}
];
database.collection("testtable").insertMany(testdatas, function(error, result) {
if (error) throw error;
console.log("插入的文档数量为: " + result.insertedCount);
}); //创建并向testtable2表插入多条数据
database.collection("testtable2").insertMany(testdatas, function(error, result) {
if (error) throw error;
console.log("插入的文档数量为: " + result.insertedCount);
}); //更新一条数据
var whereStr = {"testfield1":'testval1'}; // 查询条件
var updateStr = {$set: { "testfield2" : "update_testval2" }};
database.collection("testtable").updateOne(whereStr, updateStr, function(error, result) {
if (error) throw error;
console.log("文档更新成功");
});
//更新多条数据
database.collection("testtable").updateMany(whereStr, updateStr, function(error, result) {
if (error) throw error;
//如果满足条件的文档对应值已经是要修改的值,此处更新条数为0
console.log(result.result.nModified + " 条文档被更新");
}); //删除一条数据
var whereStr = {"testfield1":'testval11'}; // 查询条件
database.collection("testtable").deleteOne(whereStr, function(error, object) {
if (error) throw error;
console.log("文档删除成功");
});
//删除多条数据
var whereStr = {"testfield1":'testval111'}; // 查询条件
database.collection("testtable").deleteMany(whereStr, function(error, object) {
if (error) throw error;
console.log(object.result.n + " 条文档被删除");
}); //查询testtable表全部数据
database.collection("testtable"). find().toArray(function(error, result) { // 返回集合中所有数据
if (error) throw error;
console.log(result);
}); //也可按条件查询查询testtable表 testfield1 字段等于 testval1 的信息
var whereStr = {"testfield1":'testval1'}; // 查询条件
database.collection("testtable"). find(whereStr).toArray(function(error, result) {
if (error) throw error;
console.log(result);
}); //查询结果排序
//先按 testfield2 字段升序排列,再按 testfield3 字段降序排列
var sortStr = { testfield2:1, testfield3: -1 };
database.collection("testtable").find().sort(sortStr).toArray(function(error, result) {
if (error) throw error;
console.log(result);
}); //分页查询
//skip(int) 接受一个数字参数,为返回结果中,跳过指定的条数再显示
//limit(int) 接受一个数字参数,为返回结果中,限制显示的条数
//例子将排序后的结果跳过第 1 条后,显示 2 条内容
var sortStr = { testfield2:1, testfield3: -1 };
database.collection("testtable").find().skip(1).limit(2).toArray(function(error, result) {
if (error) throw error;
console.log(result);
}); //多表连接操作
//mongoDB 不是一个关系型数据库,但可以使用 $lookup 来实现左连接
//首先是查询的主表(左表)
database.collection('testtable').aggregate([
{ $lookup:
{
from: 'testtable2', // 关联的右表
localField: 'testfield1', // 左表要关联的 join 字段
foreignField: 'testfield1', // 右表要关联的 join字段
as: 'newfield' // 新生成字段(类型array)
}
}
], function(error, result) {
if (error) throw error;
//console.log(JSON.stringify(result));
console.log(result);
}); //删除表集合
database.collection("testtable2").drop(function(error, delOK) { // 执行成功 delOK 返回 true,否则返回 false
if (error) throw error;
if (delOK) console.log("集合已删除");
}); db.close();
});
Node js MongoDB简单操作的更多相关文章
- Node js MySQL简单操作
//win7环境下node要先安装MySQL的相关组件(非安装MySQL数据库),在cmd命令行进入node项目目录后执行以下语句 //npm install mysql var mysql = re ...
- Node.JS + MongoDB技术浅谈
看到一个Node.JS + MongoDB的小样例,分享给大家.魔乐科技软件学院(www.mldnjava.cn)的讲座 Node.JS + MongoDB技术讲座 云计算 +大数据 ...
- node.js+mongodb 爬虫
demo截图: 本demo爬瓜子二手车北京区的数据 (注:需要略懂 node.js / mongodb 不懂也没关系 因为我也不懂啊~~~) 之所以选择爬瓜子二手车网站有两点: 一.网站无需登录,少做 ...
- 8 步搭建 Node.js + MongoDB 项目的自动化持续集成
任何事情超过 90 秒就应该自动化,这是程序员的终极打开方式.Automating shapes smarter future. 这篇文章中,我们通过创建一个 Node.js + MongoDB 项目 ...
- 《Node.js+MongoDB+AngularJS Web开发》读书笔记及联想
总体介绍 <Node.js+MongoDB+AngularJS Web开发>,于2015年6月出版,是一本翻译过来的书,原书名为<Node.js,MongoDB and Angula ...
- AngularJS + Node.js + MongoDB开发
AngularJS + Node.js + MongoDB开发的基于位置的通讯录(by vczero) 一.闲扯 有一天班长说了,同学们希望我开发一个可以共享位置的通讯录,于是自己简单设计了下功能.包 ...
- .Net Core MongoDB 简单操作。
一:MongoDB 简单操作类.这里引用了MongoDB.Driver. using MongoDB.Bson; using MongoDB.Driver; using System; using S ...
- [转]Node.JS使用Sequelize操作MySQL
Sequelize官方文档 https://sequelize.readthedocs.io/en/latest/ 本文转自:https://www.jianshu.com/p/797e10fe23 ...
- node.js + mongodb
node.js + mongodb 这次内容是结合bootstrap把登陆注册做好,还有就是express的中间件等问题. 看这篇博客之前建议先看我上篇写的那篇博客http://www.cnblogs ...
随机推荐
- Linux入门——SSH免密登录
SSH免密登录 1.简介 SSH是一种网络协议,用于计算机之间的加密登录. 本文针对的实现是OpenSSH,它是自由软件,应用非常广泛. 2.初始化公钥私钥 有rsa,dsa两种加密方式,生成的公钥私 ...
- Scala的符号入门
Spark是由Scala编写的.Spark作为一款十分易用高效的大数据框架使用越来越广泛,Scala也随之有更多的人去学习. 语言相通,相信有python.java基础的程序员学习Scala并没有太大 ...
- ubuntu解决网易云无法打开
最近首次入手ubuntu18 摸索了很久,当然网易云是不可缺少的一部分,在配置好各种环境+程序后,也找到了解决网易云的方法了. 首先安装好网易云 默认情况下需要在终端使用 sudo 才能运行 解决的办 ...
- [原创]利用python构造ICMP Echo Request并发送
import socket import struct def checksum(source_string): sum = 0 countTo = (len(source_string)/2)*2 ...
- java随笔一(关于定时任务)
public class ThreadTest { class MyTask implements Runnable{ public void run() { say(); } } public vo ...
- Java基础——NIO(二)非阻塞式网络通信与NIO2新增类库
一.NIO非阻塞式网络通信 1.阻塞与非阻塞的概念 传统的 IO 流都是阻塞式的.也就是说,当一个线程调用 read() 或 write() 时,该线程被阻塞,直到有一些数据被读取或写入,该线程在 ...
- 使用nmon监控得出网络实时速度以及最大、最小、平均网络传送速度
首先我们得搞清楚几个概念,即什么是网速?什么是带宽? 举两个个例子: 1.家里装网线,宽带提供商说我们的带宽是100兆. 2.用迅雷下载电影,迅雷显示实时的下载速度是每秒3兆,或者说是3MB/s. 这 ...
- 快速写一个babel插件
es6/7/8的出现,给我们带来了很多方便,但是浏览器并不怎么支持,目前chrome应该是支持率最高的,所以为了兼容我们只能把代码转成es5,这应该算是我们最初使用babel的一个缘由,随着业务的开发 ...
- 「日常训练」 Genghis Khan the Conqueror(HDU-4126)
题意 给定\(n\)个点和\(m\)条无向边(\(n\le 3000\)),需要将这\(n\)个点连通.但是有\(Q\)次(\(Q\le 10^4\))等概率的破坏,每次破坏会把\(m\)条边中的某条 ...
- Linux命令应用大词典-第41章 MySQL数据库
41.1 mysqld_safe:MySQL服务器启动脚本 41.2 mysql_install_db:初始化MySQL数据目录 41.3 mysqlshow:显示MySQL数据库结构 41.4 my ...