nodejs 操作 mongodb 数据库
操作手册:
npmjs.com
搜索: mongodb
使用官方的 mongodb 包来操作
https://github.com/mongodb/node-mongodb-native //比较麻烦
使用第三方包 mongoose 来操作
mongoose 基于 MongoDB 官方的 mongodb 包再一次做了封装
官方网址: http://mongoosejs.com
mongo数据库连接
var mongoose = require('mongoose')
var Schema = mongoose.Schema
//连接数据库
//指定连接的数据库不需要存在,当你插入第一条数据之后就会自动创建
mongoose.connect('mongodb://localhost/itcast')
增加数据与表结构设计
var mongoose = require('mongoose')
var Schema = mongoose.Schema
//连接数据库
//指定连接的数据库不需要存在,当你插入第一条数据之后就会自动创建
mongoose.connect('mongodb://localhost/itcast')
// 设计集合结构(表结构)
// 字段名称就是表结构中的属性名称
// 值
// 约束的目的是为了保证数据的安全性, 不要有脏数据
/*var blogSchema = new Schema({
title : String,
author: String,
body : String,
comments: [{body : String, date : Date}]
hidden : Boolean,
meta : {
votes : Number,
favs : Number
}
});
*/
// 2.设计文档结构
var userSchema = new Schema({
username : {
type : String,
required : true //必须有
},
password : {
type : String,
required : true
},
email : {
type : String
}
})
// 3.将文档结构发布为模型
// mongoose.model 方法就是用来将一个架构发布为 model
// 第一个参数: 传入大写名词单数字符用来表示你的数据名称
// 例如 : 这里的User 最终会变为 users 集合名称
// 第二个参数: 架构 Schema
//
// 返回值: 模型构造函数
var User = mongoose.model('User', userSchema)
// 4. 当我们有了模型构造函数之后, 就可以使用这个构造函数对 users
// 增加数据
var admin = new User({
username: 'admin',
password: '',
email: 'admin@admin.com'
})
admin.save( function (err, ret) {
if (err) {
console.log('保存失败')
} else {
console.log('保存成功')
console.log(ret)
}
})
数据查询
var mongoose = require('mongoose')
var Schema = mongoose.Schema
//连接数据库
//指定连接的数据库不需要存在,当你插入第一条数据之后就会自动创建
mongoose.connect('mongodb://localhost/itcast')
// 设计集合结构(表结构)
// 字段名称就是表结构中的属性名称
// 值
// 约束的目的是为了保证数据的安全性, 不要有脏数据
/*var blogSchema = new Schema({
title : String,
author: String,
body : String,
comments: [{body : String, date : Date}]
hidden : Boolean,
meta : {
votes : Number,
favs : Number
}
});
*/
// 2.设计文档结构
var userSchema = new Schema({
username : {
type : String,
required : true //必须有
},
password : {
type : String,
required : true
},
email : {
type : String
}
})
// 3.将文档结构发布为模型
// mongoose.model 方法就是用来将一个架构发布为 model
// 第一个参数: 传入大写名词单数字符用来表示你的数据名称
// 例如 : 这里的User 最终会变为 users 集合名称
// 第二个参数: 架构 Schema
//
// 返回值: 模型构造函数
var User = mongoose.model('User', userSchema)
// 4. 当我们有了模型构造函数之后, 就可以使用这个构造函数对 users
// 增加数据
// var admin = new User({
// username: 'admin',
// password: '123456',
// email: 'admin@admin.com'
// })
// admin.save( function (err, ret) {
// if (err) {
// console.log('保存失败')
// } else {
// console.log('保存成功')
// console.log(ret)
// }
// })
// 查询数据
// 查询所有
// User.find(function (err, ret) {
// if ( err ) {
// console.log( err )
// } else {
// console.log( ret )
// }
// })
// 按条件查询
User.find({ username : 'zs' }, function (err, ret) {
if (err) {
console.log(err)
} else {
console.log( ret )
}
})
删除数据
var mongoose = require('mongoose')
var Schema = mongoose.Schema
//连接数据库
//指定连接的数据库不需要存在,当你插入第一条数据之后就会自动创建
mongoose.connect('mongodb://localhost/itcast')
// 2.设计文档结构
var userSchema = new Schema({
username : {
type : String,
required : true //必须有
},
password : {
type : String,
required : true
},
email : {
type : String
}
})
// 增加数据
// var admin = new User({
// username: 'zs',
// password: '123456',
// email: 'admin@admin.com'
// })
// admin.save( function (err, ret) {
// if (err) {
// console.log('保存失败')
// } else {
// console.log('保存成功')
// console.log(ret)
// }
// })
var User = mongoose.model('User', userSchema)
// 删除数据
User.remove({
username : 'zs'
}, function (err, ret) {
if ( err ) {
console.log(err)
} else {
console.log('删除成功')
console.log(ret)
}
})
var id = '59f9eb4cc2283e1bac7be51d';
var removestr = {'username': 'zs'};
User.findByIdAndRemove(id, removestr, function(err, res){
if (err) {
console.log("Error:" + err);
}
else {
console.log("Res:" + res);
}
})
var removestr = {'username': 'zs'};
User.findOneAndRemove(removestr, function(err, res){
if (err) {
console.log("Error:" + err);
}
else {
console.log("Res:" + res);
}
})
更新数据
var mongoose = require('mongoose')
var Schema = mongoose.Schema
//连接数据库
//指定连接的数据库不需要存在,当你插入第一条数据之后就会自动创建
mongoose.connect('mongodb://localhost/itcast')
// 2.设计文档结构
var userSchema = new Schema({
username : {
type : String,
required : true //必须有
},
password : {
type : String,
required : true
},
email : {
type : String
}
})
var User = mongoose.model('User', userSchema)
// 更新数据
var wherestr = {'username': 'admin'};
// 执行更新数据
var updatestr = {'password': 'abcdef'};
User.update(wherestr, updatestr, function(err, res) {
if (err) {
console.log(err);
} else {
console.log(res);
}
});
User.findOneAndUpdate({username : 'admin'},{
password : 'admin123'
},function (err, ret) {
if (err) {
console.log(err)
} else {
console.log('更新成功')
console.log(ret)
}
})
User.findByIdAndUpdate('5d528b7239a9cf20888515d5',{
password : 'admin123'
},function (err, ret) {
if (err) {
console.log(err)
} else {
console.log('更新成功')
console.log(ret)
}
})
nodejs 操作 mongodb 数据库的更多相关文章
- koa 基础(二十一)nodejs 操作mongodb数据库 --- 查询数据
1.app.js /** * nodejs 操作mongodb数据库 * 1.安装 操作mongodb * cnpm install mongodb --save * 2.引入 mongodb 下面的 ...
- koa 基础(二十)nodejs 操作mongodb数据库 --- 新增数据
1.app.js /** * nodejs 操作mongodb数据库 * 1.安装 操作mongodb * cnpm install mongodb --save * 2.引入 mongodb 下面的 ...
- 二十六、Nodejs 操作 MongoDb 数据库
一. 在 Nodejs 中使用 Mongodb 前面的课程我们讲了用命令操作 MongoDB,这里我们看下如何用 nodejs 来操作数据库需要引包: npm install mongodb --sa ...
- NodeJS操作MongoDB数据库
一.node.js对于mongodb的基本操作 1.数据库的开机 首先我们要先对数据库进行开机的操作,建立一个文件夹用于存放数据库文档.如D:\mongo,接下去在cmd当中键入命令-> mon ...
- nodejs操作mongodb数据库封装DB类
这个DB类也算是我经历了3个实际项目应用的,现分享出来,有需要的请借鉴批评. 上面的注释都挺详细的,我使用到了nodejs的插件mongoose,用mongoose操作mongodb其实蛮方便的. 关 ...
- Nodejs操作MongoDB数据库示例
//mongodb_demo.js /** cnpm install mongodb */ var MongoClient = require('mongodb').MongoClient; var ...
- Koa 操作 Mongodb 数据库
node-mongodb-native的介绍 使用基于官方的 node-mongodb-native 驱动,封装一个更小.更快.更灵活的 DB 模块, 让我们用 nodejs 操作 Mongodb 数 ...
- NodeJs连接操作MongoDB数据库
NodeJs连接操作MongoDB数据库 一,介绍 MongoDB是一种文档导向数据库管理系统,由C++撰写而成.介绍如何使用 Node.js 来连接 MongoDB,并对数据库进行操作. Mongo ...
- nodeJS中使用mongoose模块操作mongodb数据库
在实际运用中,对于数据库的操作我们不可能一直在cmd命令行中进行操作,一般情况下需要在node环境中来操作mongodb数据库,这时就需要引入mongoose模块来对数据库进行增删改查等操作. 首先, ...
随机推荐
- leetcode-mid-math-202. Happy Number-NO
mycode 关键不知道怎么退出循环.............其实只要有一个平方和以前出现过,那么整个计算过程就会重复 参考: class Solution(object): def isHappy( ...
- Hook exe 和 file
c#拦截程序的运行 EasyHook + win7 64位 LocalHook.GetProcAddress("Kernel32.dll", "CreateProces ...
- node服务通过Jenkins上线流程
构建流程 构建服务器: 拉取指定分支代码 构建服务器: 安装依赖 构建服务器: 执行构建 构建服务器: 如果上线流程,则在 git 上创建 tag,供回滚使用 构建服务器:打包 node 服务代码,和 ...
- ef和ashx的简单测试
在这里.小弟我默默的计算了一下用一般处理程序和MVC配合EF,到底哪个快,事实问题是我感觉都差不多,因为用的是EF,所以要提高访问速率,我觉得还是要从数据访问做起: 一般处理程序代码: private ...
- 【mysql】如何通过navicat配置表与表的多对一关系,一对一关系?设计外键的效果
背景: 现在要将接口自动化测试结果持久化,当前只是每次运行接口测试,将测试结果通过邮件发送给项目组成员.邮件内容如下: 表设计: 为了呈现这个结果:我设计了2张表run_result和run_deta ...
- python-接口开发flask模块(三)开发登陆接口
#写一个login的接口,实现的功能是输入用户名和密码,如果数据库中有该用户,那么就去redis中插入 登陆产生的sign值插入redis中有效时间600s import flask import t ...
- Java定时器Timer
Java定时器Timer在JDK库中,Timer类主要负责计划任务的功能,也就是在指定的时开始执行某一个任务.Timer类的主要作用就是设置计划任务,但封装任务的类却是TimerTask类,执行计划任 ...
- C# Console.WriteLine堵塞进程
最近在项目中控制台为了调试使用Console.WriteLine(),发现在高并发的情况下会出现假锁状态,断点调试发现卡在Console.WriteLine那.需要进行一个键盘输入才可以继续. 关于C ...
- win10安装anaconda及tensorflow1.9版本
前言 因为之前的anaconda的conda命令不能用,又找不到原因,所以就决定重装anaconda,然后再装个tensorflow环境.. 正文 可以去官网下载,也可以去清华的开源软件镜像站下载ht ...
- 【Linux开发】./configure,make,make install的作用
这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤. ./configure是用来检测你的安装平台的目标特征的.比如它会检测你是不是有CC或GCC,并不是需要CC或GCC ...