zoukankan      html  css  js  c++  java
  • nodejs中使用mongodb quickstart

    nodejs中使用mongodb quickstart

    node 中使用mongodb的quick start.整理的官网crud简单例子.
    在百度找了几篇帖子都有问题,所以直接看官网了.

    连接MondoDB

    var MongoClient = require('mongodb').MongoClient
      , assert = require('assert');
    
    // Connection URL
    var url = 'mongodb://localhost:27017/myproject';
    
    // Use connect method to connect to the server
    MongoClient.connect(url, function(err, db) {
      assert.equal(null, err);
      console.log("Connected successfully to server");
    
      db.close();
    });
    

    新建数据

    使用insertMany新建数据.mongodb中没有关系数据库中行的概念,最相近的概念是document.

    var insertDocuments = function(db, callback) {
      // Get the documents collection
      var collection = db.collection('documents');
      // Insert some documents
      collection.insertMany([
        {a : 1}, {a : 2}, {a : 3}
      ], function(err, result) {
        assert.equal(err, null);
        assert.equal(3, result.result.n);
        assert.equal(3, result.ops.length);
        console.log("Inserted 3 documents into the collection");
        callback(result);
      });
    }
    

    The insert command returns an object with the following fields:

    • result Contains the result document from MongoDB
    • ops Contains the documents inserted with added _id fields
    • connection Contains the connection used to perform the insert

    建立连接后调用

    var MongoClient = require('mongodb').MongoClient
      , assert = require('assert');
    
    // Connection URL
    var url = 'mongodb://localhost:27017/myproject';
    // Use connect method to connect to the server
    MongoClient.connect(url, function(err, db) {
      assert.equal(null, err);
      console.log("Connected successfully to server");
    
      insertDocuments(db, function() {
        db.close();
      });
    });
    

    读取collection中的数据

    var findDocuments = function(db, callback) {
      // Get the documents collection
      var collection = db.collection('documents');
      // Find some documents
      collection.find({}).toArray(function(err, docs) {
        assert.equal(err, null);
        console.log("Found the following records");
        console.log(docs)
        callback(docs);
      });
    }
    

    这样会查询collection中的全部数据.我们把dindDocuments添加到MongoClient.connect的回调中

    var MongoClient = require('mongodb').MongoClient
      , assert = require('assert');
    
    // Connection URL
    var url = 'mongodb://localhost:27017/myproject';
    // Use connect method to connect to the server
    MongoClient.connect(url, function(err, db) {
      assert.equal(null, err);
      console.log("Connected correctly to server");
    
      insertDocuments(db, function() {
        findDocuments(db, function() {
          db.close();
        });
      });
    });
    

    是的,collection.find是可以指定查询条件的

    var findDocuments = function(db, callback) {
      // Get the documents collection
      var collection = db.collection('documents');
      // Find some documents
      collection.find({'a': 3}).toArray(function(err, docs) {
        assert.equal(err, null);
        console.log("Found the following records");
        console.log(docs);
        callback(docs);
      });
    }
    

    更新数据

    使用updateOne进行单(document,不是行)数据的更新

    var updateDocument = function(db, callback) {
      // Get the documents collection
      var collection = db.collection('documents');
      // Update document where a is 2, set b equal to 1
      collection.updateOne({ a : 2 }
        , { $set: { b : 1 } }, function(err, result) {
        assert.equal(err, null);
        assert.equal(1, result.result.n);
        console.log("Updated the document with the field a equal to 2");
        callback(result);
      });  
    }
    

    加入MongoClient.connect的回调看结果:

    var MongoClient = require('mongodb').MongoClient
      , assert = require('assert');
    
    // Connection URL
    var url = 'mongodb://localhost:27017/myproject';
    // Use connect method to connect to the server
    MongoClient.connect(url, function(err, db) {
      assert.equal(null, err);
      console.log("Connected successfully to server");
    
      insertDocuments(db, function() {
        updateDocument(db, function() {
          db.close();
        });
      });
    });
    

    删除document

    类似查询的方式使用deleteOne删除document

    var removeDocument = function(db, callback) {
      // Get the documents collection
      var collection = db.collection('documents');
      // Insert some documents
      collection.deleteOne({ a : 3 }, function(err, result) {
        assert.equal(err, null);
        assert.equal(1, result.result.n);
        console.log("Removed the document with the field a equal to 3");
        callback(result);
      });    
    }
    
    var MongoClient = require('mongodb').MongoClient
      , assert = require('assert');
    
    // Connection URL
    var url = 'mongodb://localhost:27017/myproject';
    // Use connect method to connect to the server
    MongoClient.connect(url, function(err, db) {
      assert.equal(null, err);
      console.log("Connected successfully to server");
    
      insertDocuments(db, function() {
        updateDocument(db, function() {
          removeDocument(db, function() {
            db.close();
          });
        });
      });
    });
    
    

    添加索引

    跟关系数据库一样添加索引可以提高查询效率

    var indexCollection = function(db, callback) {
      db.collection('documents').createIndex(
        { "a": 1 },
          null,
          function(err, results) {
            console.log(results);
            callback();
        }
      );
    };
    
    
    var MongoClient = require('mongodb').MongoClient
      , assert = require('assert');
    
    // Connection URL
    var url = 'mongodb://localhost:27017/myproject';
    // Use connect method to connect to the server
    MongoClient.connect(url, function(err, db) {
      assert.equal(null, err);
      console.log("Connected successfully to server");
    
      insertDocuments(db, function() {
        indexCollection(db, function() {
          db.close();
        });
      });
    });
    
    

    原文地址: http://mongodb.github.io/node-mongodb-native/2.2/quick-start/

  • 相关阅读:
    老罗android开发视频教程学习完了
    微软云工具
    Andriod视频http://pan.baidu.com/share/link?shareid=7300&uk=3339495714
    微软图片编辑工具
    Smartdraw世界上最流行的商业绘图软件
    arcgis安装问题SDK开始安装不了
    光学字符识别OCR
    Android实现OCR扫描识别数字图片之图片扫描识别
    android实现图片识别的几种方法
    开源的asp.net工作流程引擎。 http://ccflow.org
  • 原文地址:https://www.cnblogs.com/leftthen/p/5861778.html
Copyright © 2011-2022 走看看