1. //用户
  2. var mongoose = require("mongoose"),
  3. setting = require("./setting");
  4.  
  5. //配置连接数据库方法
  6. var connect = function(){
  7. //mongoose.connect('mongodb://localhost/test');
  8. mongoose.connect("mongodb://" + setting.host +"/"+ setting.db);
  9. // db = mongoose.createConnection("localhost","test");
  10. //db.on("error",console.error.bind(console,'连接错误:'))
  11. }
  12.  
  13. //连接放在外面就可以多次操作,不然只能操作一次
  14. connect();
  15. //关闭数据库连接
  16. //mongoose.connection.close()
  17.  
  18. // var Schema = mongoose.Schema;
  19. // var userSchema = new Schema({});
  20.  
  21. //这种写法有点类似 object = Object();返回的也是对象
  22. //usersSchema = mongoose.Schema;
  23. var usersSchema = new mongoose.Schema({
  24. name: String,
  25. username:String,
  26. pwd:String,
  27. weibo:String,
  28. email:String
  29. });
  30.  
  31. var usersModel = mongoose.model('User', usersSchema);
  32.  
  33. function User(user){
  34. this.name = user.name,
  35. this.username = user.username,
  36. this.pwd = user.pwd,
  37. this.weibo = user.weibo,
  38. this.email = user.email
  39. };
  40.  
  41. module.exports = User;
  42.  
  43. //储存用户数据
  44. User.prototype.save = function(callback){
  45. //要存入的用户文档
  46. var user = {
  47. name:this.name,
  48. username:this.username,
  49. pwd:this.pwd,
  50. weibo:this.weibo,
  51. email:this.email
  52. };
  53. //连接数据库
  54. //connect();
  55. //var newUser = usersModel(user);
  56. var newUser = new usersModel(user);
  57. newUser.save(function(err, user){
  58. if(err){
  59. return callback && callback(err);
  60. }
  61. callback && callback(null,user);
  62. })
  63. };
  64.  
  65. //获取1条用户数据
  66. User.get = function(query,callback){
  67. //连接数据库
  68. // connect();
  69. usersModel.findOne(query, function (err, user) {
  70. if (err) {
  71. return callback && callback(err);
  72. }
  73. callback && callback(null,user);//成功,返回数据
  74. });
  75. };
  76.  
  77. //获取所有的用户数据
  78. User.getAll = function(callback){
  79. //连接数据库
  80. // connect();
  81. usersModel.find(function (err, user) {
  82. if (err) {
  83. return callback && callback(err);
  84. }
  85. callback && callback(null,user);//成功,返回数据
  86. });
  87. };
  88.  
  89. //获取id数据
  90. User.findById = function(_id,callback){
  91. //连接数据库
  92. // connect();
  93. usersModel.findById(_id,function (err, user) {
  94. if (err) {
  95. return callback && callback(err);
  96. }
  97. callback && callback(null,user);//成功,返回数据
  98. });
  99. };
  100.  
  101. //删除用户数据 只有状态码{result:{ok:1,n:0},connection:{……},options{……}}
  102. User.remove = function(query,callback){
  103. //连接数据库
  104. // connect();
  105. usersModel.remove(query, function (err, user) {
  106. if (err) {
  107. return callback && callback(err);
  108. }
  109. callback && callback(null,user);//成功,返回数据
  110. });
  111. };
  112.  
  113. //获取用户数据 只有状态码{ok:1,nModified:1,n:1}
  114. User.update = function(query,opt,callback){
  115. //连接数据库
  116. // connect();
  117. usersModel.update(query,opt,function (err, user) {
  118. if (err) {
  119. return callback && callback(err);
  120. }
  121. callback && callback(null,user);//成功,返回数据
  122. });
  123. };
  124.  
  125. var cat = {
  126. name: "yoyo",
  127. username:"cwj",
  128. pwd:"",
  129. weibo:"pingfan",
  130. email:"pingfan1991110@sina.cn"
  131. };
  132.  
  133. var Cat = new User(cat);
  134. //保存
  135. //Cat.save(function(err,user){console.log(user);})
  136. //User.findById("557683e7297334ac29068af6",function(err,user){console.log(user);});
  137.  
  138. //查询
  139. //User.get({name: "yoyo22"},function(err,user){console.log(user)});
  140. //User.getAll(function(err,user){console.log(user)})
  141. //mongoose.connection.close();
  142.  
  143. //删除一条
  144. //User.remove({name: "yoyo11"},function(err,msg){console.log(msg)});
  145. //删除所有
  146. //User.remove(null,function(err,msg){console.log(msg)});
  147. //User.remove({},function(err,msg){console.log(msg)});
  148.  
  149. //更新一条数据
  150. //User.update({name: "yoyo"},{username:"cwj",pwd:"234556",weibo:"kskk"},function(err,msg){console.log(msg)});

用mongoose实现mongodb增删改查的更多相关文章

  1. 数据库——MongoDB增删改查

    MongoDB增删改查操作 本文包含对数据库.集合以及文档的基本增删改查操作 数据库操作 #1.增 use config #如果数据库不存在,则创建并切换到该数据库,存在则直接切换到指定数据库. #2 ...

  2. MongoDB - 增删改查及聚合操作

    目录 MongoDB - 增删改查及聚合操作 一. 数据库操作(database) 1. 创建及查看库 2. 删除库 二. 集合collectionc=操作(相当于SQL数据库中的表table) 1. ...

  3. [MongoDB]增删改查

    摘要 上篇文章学习了mongodb在windows上的安装,以及如何开启mongodb,最后列举了简单的增删改查操作.本篇将继续深入学习一下增删改查. 相关文章 [MongoDB]入门操作 CRUD ...

  4. springMVC操作mongoDB增删改查

    下面是mongoDb简单的增删改查(新闻类) 附:query.addCriteria(Criteria.where("modelId").ne("").ne(n ...

  5. 第二部分 Mongodb增删改查

    学习内容:1.mongodb增加操作2.mongodb删除操作3.mongodb查询操作增删改查的高级应用Capped Collection(固定集合)GridFS 大文件上传或下载 1: inser ...

  6. MongoDB(六)java操作mongodb增删改查

    java操作mysql数据库的代码我们已经了如指掌了.增删改查,java对mongodb数据库也是类似的操作,先是数据库连接.再是进行操作. 首先我们进入进入admin数据库.然后建立自己的数据库te ...

  7. MongoDB增删改查表文档

    MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写,是一个基于分布式文件存储的开源数据库系统.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关 ...

  8. mongodb增删改查操作

    Note:mongodb存储的是文档,且文档是json格式的对象,所以增删改查都必须是json格式对象. 注:mongodb常用库和表操作,但mongodb在插入数据时,不需要先创建表. show d ...

  9. mongodb增删改查常用命令总结

    前言 去年我还折腾过mongodb,后来用不到也就没碰了,这就导致了我忘的一干二净,不得不感叹,编程这东西只要不用,就会忘没了.现在我想重拾mongodb,来总结一下常用命令,主要就是增删改查. 另外 ...

随机推荐

  1. Window 10 :如何彻底关闭:Windows Defender Service(2015-12-20日更新)

    Window 10 :如何彻底关闭:Windows Defender Service? 网上流传的什么组策略gpeidt.msc方法,什么安装其他的杀软之类的方法都很麻烦,且有弊病! 其实很简单: 利 ...

  2. Android:AS与Unity3D之间打包的各种坑及解决方案

    作者:DrkCore (http://blog.csdn.net/DrkCore) 原文链接:(http://blog.csdn.net/drkcore/article/details/5207937 ...

  3. Android Studio配置设置

    文章来源:http://www.cnblogs.com/smyhvae/p/4390905.html

  4. Jenkins入门知识

    1  修改jenkins的根目录,默认地在C:\Documents and Settings\AAA\.jenkins . .jenkins ├─jobs│  └─JavaHelloWorld│    ...

  5. Android开发学习笔记-自定义TextView属性模版

    如果项目中有很多个控件使用的是同一种样式,则为了方便,可以将样式设置到系统中去,这样使用的时候会方便很多. 下面是自定义样式模版的方法. 1.在style.xml文件中添加自己要设置的样式内容 < ...

  6. [转]油猴Tampermonkey-让百度云下载飞起来

    1. 简介 Tampermonkey,油猴脚本是一款免费的浏览器扩展程序. 我们这里用于Chrome浏览器,目的是为了让百度云里面的文件以满速下载,VIP还得出钱呢. 2. 安装 安装Lantern蓝 ...

  7. pycharm pro版本激活

    这几天行激活pycharm pro版会遇到问题,license server的网址都不可用了.包括各个网站的百度云的破解资源链接都被和谐了,发现最近jetbrains对盗版管得严. 首次安装在注册界面 ...

  8. c#直接调用ssis包实现Sql Server的数据导入功能

    调用ssis包实现Sql Server的数据导入功能网上已经有很多人讨论过,自己参考后也动手实现了一下,上一次笔者的项目中还用了一下这个功能.思前想后,决定还是贴一下增强记忆,高手请54. 1.直接调 ...

  9. 关于C中函数传参的一点理解

    一般来说c传值分为传值与传指针,Java里没有指针,因此只有传值,但是Java里传值分为简单变量传值和引用型变量传值,从本质上来说这两者没啥区别. 下面主要说的是传参时对原变量的影响: 最初练习创建单 ...

  10. 【Cesium】坐标理解(转)

    https://blog.csdn.net/qq_34149805/article/details/78393540 1. 经纬度转换为世界坐标 第一种方式:直接转换: Cesium.Cartesia ...