MongoDBの簡単な使い方

26918 ワード

MongoDBの概要
従来のリレーショナル・データベース(mysqlなど)は、一般に、データベース(database)、テーブル(table)、レコード(record)の3つの階層概念から構成され、MongoDBは、データベース(database)、コレクション(collection)、ドキュメント・オブジェクト(document)の3つの階層から構成される.MongoDBの利点:拡張性、高性能、柔軟なデータモデルMongoDBの欠点:データ重複記憶、占有空間が大きい
データベースの使用
1.データベース2である新しいフォルダを作成します.データベース起動mongod --dbpathフォルダパス例:mongod --dbpath C:\Users\Administrator\Desktop\mongoData
  • 最後にwaiting for connctions prot : 27017が現れたのは、データベースが起動に成功したことを示しています.コンピュータの権限です.起動後、現在のcmdコマンドウィンドウは動かないでください.データベースもサービスなので、閉じたら停止します.直接最小化すれば
  • は気にしない
    3.データベースを使用して新しいcmdコマンドウィンドウを開き、データベースmongoコマンドを接続し、データベースを接続し、接続に成功したらmongodbの構文を直接書いてデータベースを操作することができる.
    mongodbベースコマンド
    データベース共通コマンド1、show dbsすべてのデータベースを一覧表示
  • adminlocalシステムデータベース
  • 2、use データベース3、db/db.getName()を使用して現在存在するデータベース4、db.dropDatabase()を表示現在使用しているデータベースを削除(慎重に使用)します.5、db.stats()に現在のdbステータス6、db.version()現在のdbバージョン7、db.getMongo()現在のデータベースのリンクマシンアドレスを表示するメッセージは表示されません.
    操作集合のコマンド1、集合の作成
  • 手動で集合を作成しない:存在しない集合に1回目にデータを加算すると、集合は
  • に作成される.
  • 手動でセットを作成する:db.createCollection(name)
  • 2、現在のdbのすべての集合を得る:db.getCollection("account");指定した名前を取得した集計セット:db.getCollectionNames(); 3、削除セット:db. .drop() 4、現在存在するデータベースをリストするすべてのセット:show collectionsデータの挿入
    単一データ:db.student.insert({"name":"jack","age":18})複数データ:db.student.insertMany([{"name":"jack","age":19},{"name":"jack","age":20}])インポートデータ:必ず新しいcmdコマンドウィンドウmongoimport --db --collection [--drop]( ) --file を再開
    データの削除
    単一データ:db. .remove(,{justOne: })
  • パラメータquery:オプション、削除されたドキュメントの条件
  • パラメータjustOne:オプションで、trueまたは1に設定すると、1つだけ削除され、デフォルトfalseは、複数の
  • を削除することを示します.
  • 例:db.student.remove({"name":"jack"}) db.student.remove({"name":"jack"},1)複数データ:db.student.remove()
  • データの更新
    構文:db. .update( ,,{multi: })
  • パラメータquery:クエリー条件
  • パラメータupdate:更新オペレータ
  • パラメータmulti:オプション、デフォルトはfalseで、見つかった1番目のレコードのみを更新することを示し、trueの値は満
  • 例:db.student.update({"name":" "},{"name":"jack"})が1つ更新され、更新されていないフィールドは
  • を破棄する.
  • db.student.update({"name":" "},{$set:{"name":"jack"}})更新1本
  • db.stu.update({},{$set:{gender:0}},{multi:true})更新全
  • データの問合せ
    1.クエリー全レコードdb.userInfo.find();相当:select* from userInfo;、クエリー削除後の現在の集約セットの列の重複データdb.userInfo.distinct("name");がnameの同じデータをフィルタリングする相当:select distict name from userInfo;、条件クエリー
    1.  age = 22   
     db.userInfo.find({"age": 22});select * from userInfo where age = 22;
    2.  age > 22   
     db.userInfo.find({age: {$gt: 22}});
        :select * from userInfo where age >22;
    3.  age < 22   
     db.userInfo.find({age: {$lt: 22}});
        :select * from userInfo where age <22;
    4.  age >= 25   
     db.userInfo.find({age: {$gte: 25}});
        :select * from userInfo where age >= 25;
    5.  age <= 25   
     db.userInfo.find({age: {$lte: 25}});
    6.  age >= 23    age <= 26
     db.userInfo.find({age: {$gte: 23, $lte: 26}});
    7.  name    mongo   
     db.userInfo.find({name: /mongo/});
     //   %%
     select * from userInfo where name like ‘%mongo%’;
    8.      name、age  
     db.userInfo.find({}, {name: 1, age: 1});
        :select name, age from userInfo;
       name    true false,  ture     name:1    ,   false    name,  name      。
    9.      name、age  , age > 25
     db.userInfo.find({age: {$gt: 25}}, {name: 1, age: 1});
        :select name, age from userInfo where age >25;
    10.      
       :db.userInfo.find().sort({age: 1});
       :db.userInfo.find().sort({age: -1});
    10.    5   
     db.userInfo.find().limit(5);
        :selecttop 5 * from userInfo;
    11.   10      
     db.userInfo.find().skip(10);
    12.    5-10          ,limit pageSize,skip    *pageSize
     db.userInfo.find().limit(10).skip(5);
    13. or    
     db.userInfo.find({$or: [{age: 22}, {age: 25}]});
        :select * from userInfo where age = 22 or age = 25;
    14.            
     db.userInfo.find({age: {$gte: 25}}).count();
        :select count(*) from userInfo where age >= 20;
    15.         
     db.userInfo.find({sex: {$exists: true}}).count();
        :select count(sex) from userInfo;

    NodejsでのパッケージDAO
    //      
    const MongoClient = require("mongodb").MongoClient;
    //     
    function _connectDB(callback){
        //      
        const dburl = "mongodb://127.0.0.1:27017/school";
        MongoClient.connect(dburl,(err,db)=>{
            if(err){
                callback(err,null);
                return;
            }
            callback(err,db);
        })
    }
    //     
    exports.insertOne = function(collectionName,json,callback){
        _connectDB(function(err,db){
            db.collection(collectionName).insertOne(json,(err,result)=>{
                callback(err,result);
                db.close();
            })
        })
    }
    //     
    exports.deleteOne = function(collectionName,json,callback){
        _connectDB(function(err,db){
            db.collection(collectionName).deleteOne(json,(err,result)=>{
                callback(err,result);
                db.close();
            })
        })
    }
    //     
    exports.updateOne = function(collectionName,json1,json2,callback){
        _connectDB(function(err,db){
            db.collection(collectionName).updateOne(json1,json2,(err,result)=>{
                callback(err,result);
                db.close();
            })
        })
    }
    //     
    exports.find = function(collectionName,json,C,D){
        //     
        var result = [];
        if(arguments.length == 3){//   
            var callback = C;
            var skipnum = 0;
            var limitnum = 0;
        }else if(arguments.length == 4){//  
            var callback = D;
            var args = C;
            //      
            var skipnum = args.page || 0;
            //       
            var limitnum = args.pagenum || 0;
        }else{
            throw new Error("find            ");
        }
        _connectDB(function(err,db){
            const cursor = db.collection(collectionName).find(json).limit(limitnum).skip(skipnum * limitnum);
            cursor.each((err,document)=>{
                if(err){
                    callback(err,null);
                    db.close();
                    return;
                }
                if(document != null){
                    result.push(document);
                }else{
                    callback(null,result);
                    db.close();
                }
            })
        })
    }