nodejs实践-MongoDB

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nodejs实践-MongoDB相关的知识,希望对你有一定的参考价值。

nodejs实践-MongoDB

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

var mongoose = require(mongoose);
var uri = mongodb://username:[email protected]:port/databasename;
uri = "mongodb://localhost/part9";

mongoose.connect(uri);
var BookSchema = new mongoose.Schema({
  name:String,
  author:String,
  publichTime:Date
});

mongoose.model(Book,BookSchema);

编写 insert.js

var mongoose = require(mongoose);
require(./model.js);//将model.js中的代码执行一遍var Book = mongoose.model(Book);//返回Schemavar book = new Book({
   name ="sod",
   author:"green",
   publishTime: new Date()
});

book.author =Jim;
book.save(funtion(err){
   console.log(save states,err?failed:success);
});

编写find.js

var mongoose = require(mongoose);
require(./model.js);//将model.js中的代码执行一遍var Book = mongoose.model(Book);//返回Schema
book.find({},funtion(err,docs){
   if(err){
       console.log(err,err);
       return ;
   }
   console.log(result,docs);
});

编写findone.js

var mongoose = require(mongoose);
require(./model.js);//将model.js中的代码执行一遍var Book = mongoose.model(Book);//返回Schema
book.findOne({author:"Jim"},funtion(err,doc){
   if(err){
       console.log(err,err);
       return ;
   }
   doc.author = Jame;
   doc.save();
   console.log(findOne result,doc);
});

编写remvoe.js

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

编写condition.js

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

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

使用脚手架生成框架

express mongooseExpress

config.js

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

编写mongoose.js

var mongoose = require(mongoose);
var config = require(./config.js);

module.exports = function(){
  var db = mongoose.connect(config.mongodb);
 
  return db;
}





以上是关于nodejs实践-MongoDB的主要内容,如果未能解决你的问题,请参考以下文章

如何将代码片段存储在 mongodb 中?

nodejs常用代码片段

使用 NodeJS 和 JSDOM/jQuery 从代码片段构建 PHP 页面

javascript 用于在节点#nodejs #javascript内设置react app的代码片段

NodeJS 和 MongoDB 单元测试

NodeJs + mongodb模块demo