nodejs对mongodb数据库的增删改查操作(转载)

首先要确保mongodb的正确安装,安装参照:http://docs.mongodb.org/manual/tutorial/install-mongodb-on-debian-or-ubuntu-linux

另外可以参考我的另一篇博文

http://www.cnblogs.com/sexintercourse/p/5774310.html

指导mongo和nodejs的开发

然后下载nodejs的mongodb的driver

npm install mongodb

编写一个测试的程序:

复制代码
复制代码
 1 var mongodb = require('mongodb');
 2 var server = new mongodb.Server('localhost',27017,{auto_reconnect:true});
 3 var db = new mongodb.Db('mydb',server,{safe:true});
 4 db.open(function(err,db){
 5     if(!err)
 6     {   
 7         console.log('connect');
 8     }else{
 9         console.log(err);
10     }   
11 
12 });
复制代码
复制代码

如果最终显示connect则说明成功。

对mongodb的collection的操作

有两种方法链接collection,分别为:

db.collection('mycoll',function(err,coll){});

db.createCollection('mycoll',function(err,coll){});

这两种方法还有第二个可选参数{safe:true},这个参数的作用对于第一种方法,如果加上了这个参数,那么当collection不存在的时候则报错,对于第二种方法,则当collection存在的时候报错

示例:

  1 var mongodb = require('mongodb');

复制代码
复制代码
 2 var server = new mongodb.Server('localhost',27017,{auto_reconnect:true});
 3 var db = new mongodb.Db('mydb',server,{safe:true});
 4 db.open(function(err,db){
 5     if(!err)
 6     {   
 7       console.log('connect');
 8       db.collection('mycoll',{safe:true},function(err,collection){
 9           if(err){
10               console.log(err);
11           }   
12       }); 
13 
14     }else{
15         console.log(err);
16     }   
17 
18 });  
复制代码
复制代码

 结果如图所示:

 

示例:

  1 var mongodb = require('mongodb');

复制代码
复制代码
 2 var server = new mongodb.Server('localhost',27017,{auto_reconnect:true});
 3 var db = new mongodb.Db('mydb',server,{safe:true});
 4 db.open(function(err,db){
 5     if(!err)
 6     {   
 7       console.log('connect');
 8       db.createCollection('mycoll',{safe:true},function(err,collection){
 9           if(err){
10               console.log(err);
11           }   
12       }); 
13 
14     }else{
15         console.log(err);
16     }   
17 
18 });                                                                             
复制代码
复制代码

 结果如图所示:

 

删除collection则使用dropCollection函数即可:

示例:

复制代码
复制代码
 1 var mongodb = require('mongodb');
 2 var server = new mongodb.Server('localhost',27017,{auto_reconnect:true});
 3 var db = new mongodb.Db('mydb',server,{safe:true});
 4 db.open(function(err,db){
 5     if(!err)
 6     {   
 7       console.log('connect');
 8       db.dropCollection('mycoll',{safe:true},function(err,result){
 9          console.log(result);
10       }); 
11 
12     }else{
13         console.log(err);
14     }   
15 
复制代码
复制代码

16 });

结果如图所示:

 

对collection进行增删改查

向collection添加数据使用insert函数

示例:

复制代码
复制代码
 1 var mongodb = require('mongodb');
 2 var server = new mongodb.Server('localhost',27017,{auto_reconnect:true});
 3 var db = new mongodb.Db('mydb',server,{safe:true});
 4 db.open(function(err,db){
 5     if(!err)
 6     {   
 7       db.collection('mycoll',{safe:true},function(err,collection){
 8           var tmp1 = {title:'hello',number:1};
 9           collection.insert(tmp1,{safe:true},function(err,result){
10               console.log(result);
11           }); 
12     });
13     }else{
14         console.log(err);
15     }   
16 
17 });
复制代码
复制代码

结果如图:

 

对数据进行更新:

示例:

 

复制代码
复制代码
 1 var mongodb = require('mongodb');
 2 var server = new mongodb.Server('localhost',27017,{auto_reconnect:true});
 3 var db = new mongodb.Db('mydb',server,{safe:true});
 4 db.open(function(err,db){
 5     if(!err)
 6     {
 7       db.collection('mycoll',{safe:true},function(err,collection){
 8           collection.update({title:'hello'},{$set:{number:3}},{safe:true},function(err,result){
 9               console.log(result);
10           });
11 
12     }else{
13         console.log(err);
14     }
15 
16 });
17                                                                                                                     
复制代码
复制代码

 

结果如图所示:

 

对数据进行删除使用remove函数

 示例:

复制代码
复制代码
 1 var mongodb = require('mongodb');
 2 var server = new mongodb.Server('localhost',27017,{auto_reconnect:true});
 3 var db = new mongodb.Db('mydb',server,{safe:true});
 4 db.open(function(err,db){
 5     if(!err)
 6     {
 7       db.collection('mycoll',{safe:true},function(err,collection){
 8           collection.remove({title:'hello'},{safe:true},function(err,result){
 9               console.log(result);
10           });
11         
12     }else{
13         console.log(err);
14     }         
15                                 
16 });                                       
复制代码
复制代码

结果如图:

 

如果remove没有任何的参数,则删除全部。

查找操作,查找操作有两个方法一个是find,一个是findOne

示例:

  1 var mongodb = require('mongodb');

复制代码
复制代码
 2 var server = new mongodb.Server('localhost',27017,{auto_reconnect:true});
 3 var db = new mongodb.Db('mydb',server,{safe:true});
 4 db.open(function(err,db){
 5     if(!err)
 6     {   
 7       db.collection('mycoll',{safe:true},function(err,collection){
 8           var tmp1 = {title:'hello'};
 9           var tmp2 = {title:'world'};
10           collection.insert([tmp1,tmp2],{safe:true},function(err,result){
11               console.log(result);
12           }); 
13           collection.find().toArray(function(err,docs){
14               console.log('find');
15               console.log(docs);
16           }); 
17           collection.findOne(function(err,doc){
18               console.log('findOne');
19               console.log(doc);
20           }); 
21       });  
复制代码
复制代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/423841.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mybatis学习(16):不使用接口的方式

目录结构 com.geyao.mybatis.mapper BlogMapper类 package com.geyao.mybatis.mapper;import com.geyao.mybatis.pojo.Blog;public interface BlogMapper {Blog selectBlog(Inteage id); }BlogMapper.xml <?xml version"1.0" encoding"UTF-8" ?>…

AS3图像抖动效果源码。

DemoSourceWebsite转载于:https://www.cnblogs.com/xxcainiao/archive/2008/05/07/1186805.html

mybatis学习(17):列名与属性名不一致的情况(使用别名)

目录结构 com.geyao.mybatis.mapper BlogMapper类 package com.geyao.mybatis.mapper;import com.geyao.mybatis.pojo.Blog;public interface BlogMapper {Blog selectBlog(Inteage id); }BlogMapper.xml <?xml version"1.0" encoding"UTF-8" ?>…

mybatis学习(18):列名与属性名不一致的情况(使用ResultMap)

目录结构 com.geyao.mybatis.mapper BlogMapper类 package com.geyao.mybatis.mapper;import com.geyao.mybatis.pojo.Blog;public interface BlogMapper {Blog selectBlog(Integer id);Blog selectBlog2(Integer id); }BlogMapper.xml <?xml version"1.0" en…

MVCToolKit中HtmlHelper.ActionLink的BUG?

分页时<%if (ViewData.Accounts.IsPreviousPage) { %><%Html.ActionLink<SpeakOutFreely.Controllers.ManageController>(c >c.List(ViewData.Accounts.PageIndex -1), "Previous")%><%} %><%if (ViewData.Accounts.IsNextPage) { %&g…

PyChram简单使用教程

一、PyChram下载 官网&#xff1a;http://www.jetbrains.com/pycharm Windows:http://www.jetbrains.com/pycharm/download/#sectionwindows Linux:http://www.jetbrains.com/pycharm/download/#sectionlinux Mac:http://www.jetbrains.com/pycharm/download/# 二、PyChram简单…

mybatis学习(19):模糊查询#

目录结构 com.geyao.mybatis.mapper BlogMapper类 package com.geyao.mybatis.mapper;import java.util.List;import com.geyao.mybatis.pojo.Blog;public interface BlogMapper {Blog selectBlog(Integer id);Blog selectBlog2(Integer id);List<Blog> selectBlogByTi…

mybatis学习(20):模糊查询$

目录结构 com.geyao.mybatis.mapper BlogMapper类 package com.geyao.mybatis.mapper;import java.util.List;import com.geyao.mybatis.pojo.Blog;public interface BlogMapper {Blog selectBlog(Integer id);Blog selectBlog2(Integer id);List<Blog> selectBlogByTi…

mybatis学习(21):MySQL 字符串 转换 CAST与CONVERT 函数的用法

MySQL 的CAST()和CONVERT()函数可用来获取一个类型的值&#xff0c;并产生另一个类型的值。两者具体的语法如下&#xff1a; Sql代码 CAST(value as type); CONVERT(value, type); 就是CAST(xxx AS 类型), CONVERT(xxx,类型)。 Sql代码 mysql> SELECT CAST(3.35 …

【转载】快速、可伸缩和流式的AJAX代理--跨域持续内容分发

原文&#xff1a;《Fast, Scalable, Streaming AJAX Proxy - continuously deliver data from across domains》 作者&#xff1a;Omar Al ZabirURL&#xff1a; http://www.codeproject.com/KB/ajax/ajaxproxy.aspx Download source - 16.1 KB Introduction Due to browsers p…

pycharm常用设置(keymap设置及eclipse常用快捷键总结)

2015-04-15 13:23 23800人阅读 评论(0) 收藏 举报分类&#xff1a;openstack-环境及安装配置&#xff08;10&#xff09; 版权声明&#xff1a;欢迎大家转载&#xff0c;转载请注明出处blog.csdn.net/tantexian。 设置pycharm为Eclipse快捷键后使用总结&#xff1a; Ctrl O 根…

mybatis学习(22):查询排序

按照某列排序 目录结构 com.geyao.mybatis.mapper BlogMapper类 package com.geyao.mybatis.mapper;import java.util.List;import com.geyao.mybatis.pojo.Blog;public interface BlogMapper {Blog selectBlog(Integer id);Blog selectBlog2(Integer id);List<Blog> …

python基础:python循环、三元运算、字典、文件操作

目录&#xff1a; python循环三元运算字符串字典文件操作基础 一、python编程 在面向过程式编程语言的执行流程中包含&#xff1a; 顺序执行 选择执行 循环执行 if是条件判断语句&#xff1b;if的执行流程属于选择执行&#xff1b;if语句有三种格式&#xff0c;如下&#xff1…

mybatis学习(23):分页1 多参数传递(索引方式)

分页排序 目录结构 com.geyao.mybatis.mapper BlogMapper类 package com.geyao.mybatis.mapper;import java.util.List;import com.geyao.mybatis.pojo.Blog;public interface BlogMapper {Blog selectBlog(Integer id);Blog selectBlog2(Integer id);List<Blog> sele…

mybatis学习(24):分页2 多参数传递(使用注解)

分页排序 目录结构 com.geyao.mybatis.mapper BlogMapper类 package com.geyao.mybatis.mapper;import java.util.List;import org.apache.ibatis.annotations.Param;import com.geyao.mybatis.pojo.Blog;public interface BlogMapper {Blog selectBlog(Integer id);Blog se…

Python -- 三元表达式(三目运算符)

一些语言&#xff08;如Java&#xff09;的三元表达式形如&#xff1a; [plain] view plaincopy 判定条件?为真时的结果:为假时的结果 Python的三元表达式有如下几种书写方法&#xff1a; [python] view plaincopy if __name__ __main__: a b True c …

Vista SP1、IIS7,安装ASP.Net 1.1、VS2003、NetAdvantage 2004vol、Sql Server2000全攻略

对于微软的软件&#xff0c;一向认为是&#xff1a;beta版惨不忍睹&#xff0c;rtm版马马虎虎&#xff0c;sp1版。所以&#xff0c;现在Vista SP1出来了&#xff0c;我也考虑更换操作系统了。经过一番google&#xff0c;唯一的问题应该就在于ASP.Net 1.1在Vista上的运行调试了&…

mybatis学习(25):分页3 多参数传递(使用map)

分页排序 目录结构 com.geyao.mybatis.mapper BlogMapper类 package com.geyao.mybatis.mapper;import java.util.List; import java.util.Map;import org.apache.ibatis.annotations.Param;import com.geyao.mybatis.pojo.Blog;public interface BlogMapper {Blog selectBl…

2019CCPC湖南全国邀请赛-Chika and Friendly Pairs- 莫队+树状数组+离散化

题目链接&#xff1a; http://acm.hdu.edu.cn/showproblem.php?pid6534 思路&#xff1a; 莫队算法&#xff0c;树状数组求和。每个数对应的离散化之后的值需要打表存下来。 Code&#xff1a; 1 #include<bits/stdc.h>2 using namespace std;3 const int N2700010;4 int…

用 GDI 操作 EMF 文件[6]: GetEnhMetaFileHeader - 获取 EMF 的头文件

//增强图元文件的头文件结构 TEnhMetaHeader: tagENHMETAHEADER packed recordiType: DWORD; {记录类型}nSize: DWORD; {结构大小}rclBounds: TRect; {外接矩形(单位是像素)}rclFrame: TRect; {图片矩形(单位是 0.1 毫米)}dSignature: DWORD; …