mongodb中集合相当于表,常用指令

mongo 进入数据库

use yourdatabase 来选择你的数据集,这个跟关系型中的一样

show collections 来查看你数据集中的表,collection就是关系型中的表

db.createCollection(name,option) name是表名,option(可选)指定有关内存大小和索引选项

db.yourcollection.find() 来查找信息,()里面是查询参数,不填则返回表中全部信息。可以填一个或多个字段,比如{username:"admin“}

db.yourcollection.remove()删除一条或多条信息,但保留表db.yourcollection.drop()删除整个表

db.yourcollection.insert(item)item就是你要插入的数据

db.yourcollection.update(query,updatedata)query就是跟find一样,先找到你要更新的地方,updatedata可以是下面这样

$set:{'title':'New MongoDB Tutorial'}}MongoDB默认将只更新单一的文件,来更新多个你需要设置参数置'multi' 为true {multi:true}

mongodb一个比较好的学习网站 http://www.yiibai.com/mongodb/

mongoose其实就是mongodb的一个封装库。记录一下mongoose的简单使用。

连接:

var mongoose = require('mongoose');

mongoose.connect('mongodb://localhost/test');其中test是你database的名字

创建Schema,就是相当于创建表的结构,跟关系型的一样

var UserSchema = mongoose.Schema({name: String
})

然后将Schema变成模型(Model),这样你就可以操作Model对象了

var UserInfo = mongoose.model('UserInfo', UserSchema)

这个过程会在数据库中建表,表名就是model方法中的第一个参数+s,比如这个就是userinfos(表名不区分大小写)

添加一条新数据:

var newUser = new UserInfo({ name: 'fluffy' });
newUser.save(function (err, user) {if (err) return console.error(err);
});

这里匿名函数的第二个参数是插入成功后返回的对象本身

查找:

  UserInfo.find({username:username},function (err, user) {if (err) return callback(err) ;callback(null,user) ;});

和mongodb的基本一致需要查找的参数,返回的是对象数组,就算你知道数据库中只有一个对象,也是返回长度为1的数组,如果要只返回一个对象利用findOne方法。

在做应用的时候很有可能有这样的需求就是,我得到了一份用户的名单,我希望传入名单数组得到所对应的这群用户的信息,说白了就是查询条件是一个字段的数组。那么方法如下:

  UserInfo.find().where('username').in(arr).exec(function(err,UserList){if(err){callback(err) ;}else {callback(null,UserList) ;}});

其中where中填写的就是字段,in(arr)中的arr就是那个用户名数组

更新:

    UserInfo.update({username: data.username}, {$set: {username:“admin”}}, function (err, result) {callback(result);});

很有可能遇到Number的字段,然后你想让它在原有的基础上加1或者减1,下面是个减1的例子

    UserInfo.update({username: data.username}, {$inc: {follower_count:-1}}, function (err, result) {console.log("updateFollower" + result);callback(result);});

计数:

  UserInfo.count(data, function(err,count){callback(count) ;});

删除和查找差不多,就不说了,mongoose的文档网站 http://www.nodeclass.com/api/mongoose.html

还有就是我作为萌新遇到的问题:这些操作都是异步的!异步这个思想在node中很重要,所以你一定要在回调函数里对数据进行处理。

 

转载于:https://www.cnblogs.com/maskmtj/p/5431305.html

mongoose使用简记相关推荐

  1. node.js(node.js+mongoose小案例)_实现简单的注册登录退出

    一.前言 通过node.js基本知识对node.js基本知识的一个简单应用 1.注册 2.登录 3.退出 二.基本内容 1.项目结构搭建如图所示 2.这个小案列中用到了art-template子模板以 ...

  2. mongoose手动生成ObjectId

    如果需要手动生成使用mongoose.Types.ObjectId()方法. var mongoose = require('mongoose'); var id = mongoose.Types.O ...

  3. mongoose简单使用

    介绍&安装 官网:http://www.mongoosejs.net/ npm i -S mongoose 使用 1.连接mongodb&创建模型 var mongoose = req ...

  4. node mongoose_如何使用Express,Mongoose和Socket.io在Node.js中构建实时聊天应用程序

    node mongoose by Arun Mathew Kurian 通过阿伦·马修·库里安(Arun Mathew Kurian) 如何使用Express,Mongoose和Socket.io在N ...

  5. koa+mongoose基础入门

    1.mongoose基本使用 1.安装mongodb npm install mongodb 2.引入mongodb数据表,连接mongodb,通过node来对mongodb进行异步的增删改查 con ...

  6. mongoose 实用 API 总结

    2019独角兽企业重金招聘Python工程师标准>>> 一.介绍 1. 概述 mongoose 模块用于简化 node 与数据库 mongodb 之间的操作,目的是通过简便的 API ...

  7. [转] mongoose学习笔记(超详细)

    名词解释 Schema: 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力 Model: 由Schema编译而成的假想(fancy)构造器,具有抽象属性和行为.Model的每一个实例(ins ...

  8. Mongoose源码剖析:Introduction and Installation

    引言 要剖析Mongoose的源码,首先你得知道它的一些基本情况和特性.并去使用它.本文就是介绍Mongoose是个什么东西?及如何安装和使用?这里假设你知道什么web服务器软件.web服务器使用什么 ...

  9. Nodejs+Express学习二(Mongoose基础了解)

    学习Node注定少不了与数据库打交道,而MongoDB和Node可以说是绝配,这篇主要是简单介绍Mongoose这个模块. 由于本人也是边学边写的这篇文章,绝对会有新手的味道,请大神看到这里就表往下看 ...

最新文章

  1. QT实现PhotoSurface
  2. python requests post提交数据报错
  3. Mysql -uroot -p 登陆不上_mysql服务启动却连接不上的解决方法
  4. JS 进阶知识点及常考面试题
  5. Golang Post传参调用示例
  6. tp5 mysql 使用ignore_tp5数据库配置操作
  7. 【精品软件】AE这套神级扩展终于支持2021了,AE脚本-Motion Factory 完整五套解锁版
  8. TIFF图像文件格式解析
  9. 两万常用汉字的拼音+首字母缩写+unicode编码对照表
  10. 网易发起“疾风”智造IoT联盟,深化“互联网+先进制造业”发展
  11. 信息检索与利用(第三版)第二章信息资源与信息源
  12. 纯干货,PSI 原理解析与应用
  13. 浅谈RASP技术攻防之实战
  14. java菜单管理模块_后台管理系统-菜单管理模块
  15. 华为服务器休眠远程怎么唤醒,华为路由WS5200怎么设置远程唤醒功能
  16. mac 远程控制android,允许Mac用户使用其Android设备远程控制其Mac媒体
  17. 【安卓Framework学习】Wifi框架学习之核心类
  18. html5制作波浪,技能get:用HTML5实现波浪效果
  19. 计算机图文混合排版教学设计,《WORD图文混排》教学设计
  20. 微信公众号发送小程序卡片_微信公众号群发文章支持添加小程序卡片

热门文章

  1. UIDatePicker的使用
  2. 第四届HTML5峰会 - 上海站
  3. 二路单调自增子序列模型【acdream 1216】
  4. Oracle重建回滚段
  5. [转] Tomcat 系统架构与设计模式,第 1 部分: 工作原理
  6. NHibernate Profiler使用方法
  7. 格式化显示(日期\货币)
  8. 【我评】——关于Web标准
  9. talentcentral测评结果_WinTalent人才测评系统
  10. js设置html不可编辑状态,JS_设置弹出页面的地址栏不可编辑