zoukankan      html  css  js  c++  java
  • Mongodb 操作

    node.js 中使用mongodb,首先 npm install mongodb 添加至 package.json。

    首先编写个测试demo:

    // mongodb 基本配置
    var mongodb = require('mongodb');
    var server = new mongodb.Server('localhost', 27017, {auto_reconnect:true});
    var db = new mongodb.Db('crawlerdb', server, {safe:true});
    
    // 开始mongodb操作
    db.open(function (err, db) {
      if (err) return err;
      
      console.log('connect!');
    })

    连接成功显示 connect!

    Mongodb 中文档是最基本的单位,如{name: 'Tony', age: 20, gender: 'male'} 就是一个最基本单位。而文档中又可以嵌套其他文档。集合是许多文档的总和,一个数据库可以有多个集合,一个集合可以有多个文档。

    Mongodb 中对 collection 操作有两种方法:1. db.collection('user', function(err, result){...}); 2. db.createCollection('user', function(err, result){...}); (user为集合名字)

    其中这两种方法有个可选参数 {safe: true} 

    db.collection('user', {safe: true}, function(err, result){...})  collection 不存在时将报错。

    db.createCollection('user', {safe: true}, function(err, result){...})  collection 存在时报错。

    示例如下:

    var mongodb = require('mongodb');
    var server = new mongodb.Server('localhost', 27017, {auto_reconnect:true});
    var db = new mongodb.Db('crawlerdb', server, {safe:true});
    
    db.open(function (err, db) {
      if (err) return err;
    
      console.log('connect!');
      db.createCollection('user', function(err, result) {
        
      })
    })

    删除collection使用dropCollection();

    db.dropCollection('user', function(err,result){
        console.log(result);
    }); 

    对collection进行增删改查操作:

    向collection添加数据使用insert方法。

    var mongodb = require('mongodb');
    var server = new mongodb.Server('localhost', 27017, {auto_reconnect:true});
    var db = new mongodb.Db('crawlerdb', server, {safe:true});
    
    db.open(function (err, db) {
      if (err) return err;
    
      console.log('connect!');
      db.collection('user', function(err, user) {
        var item = {name: 'Tony', age: 20, gender: 'male'};
        user.insert(item, function (err, result) {
          console.log(result);
        })
      })
    })

    对数据进行更新用update方法。

    var mongodb = require('mongodb');
    var server = new mongodb.Server('localhost', 27017, {auto_reconnect:true});
    var db = new mongodb.Db('crawlerdb', server, {safe:true});
    
    db.open(function (err, db) {
      if (err) return err;
    
      console.log('connect!');
      db.collection('user', function(err, user) {
        user.update({name: 'Tony'}, {$set: {age: 22}}, function (err, result) {
          console.log(result);
        })
      })
    })

    对数据进行删除用remove方法。

    var mongodb = require('mongodb');
    var server = new mongodb.Server('localhost', 27017, {auto_reconnect:true});
    var db = new mongodb.Db('crawlerdb', server, {safe:true});
    
    db.open(function (err, db) {
      if (err) return err;
    
      console.log('connect!');
      db.collection('user', function(err, user) {
        user.remove({name: 'Tony'}, function (err, result) {
          console.log(result);
        })
      })
    })

    对数据进行查找用 find或者 findOne方法。

    var mongodb = require('mongodb');
    var server = new mongodb.Server('localhost', 27017, {auto_reconnect:true});
    var db = new mongodb.Db('crawlerdb', server, {safe:true});
    
    db.open(function (err, db) {
      if (err) return err;
    
      console.log('connect!');
      db.collection('user', function(err, user) {
    
        var item1 = {name: 'Tony', age: 21, gender: 'male'};
        var item2 = {name: 'Sue', age: 18, gender: 'female'};
    
        user.insert([item1, item2], function (err, result) {
          console.log(result);
        });
    
        user.find(function(err, docs) {
          console.log(docs);
        });
    
        user.findOne(function(err, doc) {
          console.log(doc);
        });
      });
    });
  • 相关阅读:
    取消select默认样式
    浏览器私有前缀
    兼容ie的background-size: cover;
    关于字体
    lorem 快速生成x个单词
    bash常见命令
    rgba透明的兼容处理
    JDK源码分析(10) CopyOnWriteArrayList
    JDK源码分析(9) LinkedHashMap
    JDK源码分析(8) StringBuffer & StringBuilder
  • 原文地址:https://www.cnblogs.com/yanjliu/p/3935138.html
Copyright © 2011-2022 走看看