nodejs实践-MongoDB
laiqun@msn.cn

Contents

1. 特点:

  • 使用BSON存储数据
  • 支持相对丰富的查询操作
  • 支持索引
  • 副本集
  • 分片
  • 无模式
  • 部署简单方便

2. 开始使用

  1. 检查是否安装 which mongod

  2. 创建目录 mkdir -p /data/db

  3. 检测磁盘空间是否够用 df -lh

  4. 启动

    当前进程的方法 mongod –dbpath=/data/db –port=27017

    守护进程的方法 mongod –dbpath=/data/db –port=27017 –fork –syslog

    日志的查看 tail -f /var/log/message 监控文件的修改 指定日志 –log=

    结束后台 kill 进程号

    运行客户端 mongo 127.0.0.1:27017

    show dbs

    use part9

    db.users.insert({“username”:“Sid”});

    show collections

    db.users.find()

    db.users.insert({“username”:“Zoe”,“group”:“reporter”});

    db.users.find().count();

    db.users.insert({“username”:“Zoe”,“group”:“programmer”});

    ad.users.find({“_id”:ObjectID(“”)})

    //条件 更新内容 更新配置

    ad.users.update({“username”:“Zoe”},{$set:{“group”:“writer”},{multi:true}});

    //未指定 则属性就没了 必须把所有值指定 条件
    db.users.save({“_id”:ObjectId(“xxxx”)},“group”:“reporter”);

    db.users.remove({“group”:“reporter”})

    db.users.remove({“group”:“reporter”},true)//第二个参数是单行删除

    db.users.remvoe({})//删除全部文档

    db.user.drop();//索引和文档都删除

    3. 使用Mongoose操作MongoDB

是一种ORM模块,将对象对应为结果

  • 安装 cnpm install mongoose

编写 model.js Model 与 Schema

  1. var mongoose = require('mongoose');
  2. var uri = 'mongodb://username:password@hostname:port/databasename';
  3. uri = "mongodb://localhost/part9";
  4. mongoose.connect(uri);
  5. var BookSchema = new mongoose.Schema({
  6. name:String,
  7. author:String,
  8. publichTime:Date
  9. });
  10. mongoose.model('Book',BookSchema);

编写 insert.js

  1. var mongoose = require('mongoose');
  2. require('./model.js');//将model.js中的代码执行一遍var Book = mongoose.model('Book');//返回Schemavar book = new Book({
  3. name ="sod",
  4. author:"green",
  5. publishTime: new Date()
  6. });
  7. book.author ='Jim';
  8. book.save(funtion(err){
  9. console.log('save states',err?'failed':'success');
  10. });

编写find.js

  1. var mongoose = require('mongoose');
  2. require('./model.js');//将model.js中的代码执行一遍var Book = mongoose.model('Book');//返回Schema
  3. book.find({},funtion(err,docs){
  4. if(err){
  5. console.log('err',err);
  6. return ;
  7. }
  8. console.log('result',docs);
  9. });

编写findone.js

  1. var mongoose = require('mongoose');
  2. require('./model.js');//将model.js中的代码执行一遍var Book = mongoose.model('Book');//返回Schema
  3. book.findOne({author:"Jim"},funtion(err,doc){
  4. if(err){
  5. console.log('err',err);
  6. return ;
  7. }
  8. doc.author = 'Jame';
  9. doc.save();
  10. console.log('findOne result',doc);
  11. });

编写remvoe.js

  1. var mongoose = require('mongoose');
  2. require('./model.js');//将model.js中的代码执行一遍var Book = mongoose.model('Book');//返回Schema//第一个参数为条件
  3. book.findOne({author:"Jim"},funtion(err,doc){
  4. if(err){
  5. console.log('err',err);
  6. return ;
  7. }
  8. if(doc){
  9. doc.remove();
  10. }
  11. });

编写condition.js

  1. var mongoose = require('mongoose');
  2. require('./model.js');//将model.js中的代码执行一遍var Book = mongoose.model('Book');//返回Schema//第一个参数为条件 联合条件var cond = {
  3. $or:[ //or 可以改为and 还有大于小于等操作
  4. {author:"Jane"},
  5. {author:"Jim"}
  6. ]
  7. };
  8. book.find(cond,funtion(err,docs){
  9. if(err){
  10. console.log('err',err);
  11. return ;
  12. }
  13. console.log('cond:',cond,'result:',docs)
  14. });

4. 在express中使用,组织数据库相关代码

使用脚手架生成框架

express mongooseExpress

config.js

  1. module.exports ={
  2. mongodb:"mongodb://localhost/part9"
  3. };

编写mongoose.js

  1. var mongoose = require('mongoose');
  2. var config = require('./config.js');
  3. module.exports = function(){
  4. var db = mongoose.connect(config.mongodb);
  5. return db;
  6. }

nodejs实践-MongoDB的更多相关文章

  1. nodejs和mongodb实践

    首先,当然是都安装了nodejs 和mongodb了.这必须是前提条件. 现在我们要用nodejs连接mongodb数据库了.我这里只是一个非常非常简单是实践,初学嘛.更深入的学习之后,我会仔细写笔记 ...

  2. 大熊君大话NodeJS之------MongoDB模块(额外篇)

    一,开篇分析 这篇属于扩展知识篇,因为在下面的文章中会用到数据库操作,所以今天就来说说它(Mongodb模块). (1),简介 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为 ...

  3. nodejs操作mongodb

    一.下载地址 https://www.mongodb.com/download-center#community 二.控制台操作mongodb 1.安装完后添加环境变量. 2.在某个根目录下新建dat ...

  4. nodejs链接mongodb数据库

    nodeJs链接mongodb数据库有两种方式,第一种是利用官方自己开发的npm包mongodb链接,第二种是利用第三方npm包mongoose链接:这里如果是window操作系统,建议用mongoo ...

  5. nodejs实践-代码组织

    nodejs实践-代码组织 laiqun@msn.cn Contents 1. 代码组织 1. 代码组织 更新版本 npm install -g n n latest 项目文件组织 MVC 前后端代码 ...

  6. Nodejs中Mongodb使用

    Mongodb使用 打开解压后的Mongodb文件夹,新建data.logs文件夹,并在logs文件夹中新建mongodb.log文档. 添加后Mongod文件夹示意图: 用cmd命令行启动Mongo ...

  7. NodeJS+Express+MongoDB

    一.MongoDB MongoDB是开源,高性能的NoSQL数据库:支持索引.集群.复制和故障转移.各种语言的驱动程序丰富:高伸缩性:MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言 ...

  8. NodeJs操作MongoDB之分页功能与常见问题

    NodeJs操作MongoDB之分页功能与常见问题 一,方法介绍 1,聚合操作之count count()方法可以查询统计符合条件的集合的总数 db.User.count(<query>) ...

  9. NodeJs操作MongoDB之多表查询($lookup)与常见问题

    NodeJs操作MongoDB之多表查询($lookup)与常见问题 一,方法介绍 aggregate()方法来对数据进行聚合操作.aggregate()方法的语法如下 1 aggregate(ope ...

随机推荐

  1. Confluence搭建

    参见 https://confluence.atlassian.com/display/CONF54/Installing+the+Confluence+EAR-WAR+Edition 下载5.4.4 ...

  2. 基于Flash与window平台本地程序通信实现媒体流发布

    0 Web场景下的媒体流发布可以采用Flash原生API实现,但是Flash H264视频压缩参数不可控.音频无法AAC编码,所以一般采用浏览器插件方式,但是浏览器插件有版本兼容问题.不稳定,所以可以 ...

  3. 软件测试之α测试和Beta测试

    实施验收测试的常用策略有三种,它们分别是: · 正式验收 · 非正式验收或Alpha 测试 · Beta 测试 因此,Alpha测试和Beta测试都属于验收测试.所谓验收测试是软件产品完成了功能测试和 ...

  4. 模型驱动 ModelDriven

    ModelDriven:模型驱动,对所有action的模型对象进行批处理. 我们在开发中, 在action中一般是用实体对象,然后给实体对象get,set方法. RegAction{ User use ...

  5. JDK下载和安装

    1.下载并安装JDK ,最新版本为1.8.0,官网下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 点击所 ...

  6. 如何利用Visual studio 2010创建一个ASP网站?

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="UserLogin.aspx.c ...

  7. form表单中的带有name的标签直接转JSON

    1. 将如下内容引入页面:比如说新建一个 a.js,然后在页面中引入a.js//将form表单序列化成json格式 $.fn.serializeObject = function () { var o ...

  8. 通过CSS实现各种方向的三角形

    #triangle-up { width: 0; height: 0; border-left: 50px solid transparent; border-right: 50px solid tr ...

  9. 规划(纪念我在ACM道路上的一年)

    现在已经是晚上一点了,我早早的躺在床上,不能入睡,因为睡觉前看了一下我们学校今年区域赛的成绩总结,派出八次队伍,七个铜-- 再加上这两天ACM迎新杯的筹备过程的问题,让我产生了深深的思考-- 去年司老 ...

  10. find the greatest common divisor

    function gcd(a, b) return a else return gcd(b, a mod b)