二、Mongodb実戦の--Mongodb Shellは簡単な挿入とクエリーを実現する

2222 ワード

  • insert

  • コレクションへのドキュメントの挿入
    source code
    function (obj, _allow_dot) {
        if (!obj) {
            throw "no object passed to insert!";
        }
        if (!_allow_dot) {
            this._validateForStorage(obj);
        }
        if (typeof obj._id == "undefined" && !Array.isArray(obj)) {
            var tmp = obj;
            obj = {_id:new ObjectId};
            for (var key in tmp) {
                obj[key] = tmp[key];
            }
        }
        this._db._initExtraInfo();
        this._mongo.insert(this._fullName, obj);
        this._lastID = obj._id;
        this._db._getExtraInfo("Inserted");
    }
    

    example:
    >db.users.insert({"userName":"chjzh","pwd":"123"})
    
  • find

  • 集合内で条件を満たすドキュメントをクエリーし、find()は集合内のすべてのドキュメントを返します.
    source code
    function (query, fields, limit, skip, batchSize, options) {
        return new DBQuery(this._mongo, this._db, this, this._fullName, this._massageObject(query), fields, limit, skip, batchSize, options || this.getQueryOptions());
    }
    

    example
    >db.users.find({"userName":"chjzh"})
    
  • save

  • コレクションにドキュメントを挿入します.insertとは異なり、コレクションに重複するidがある場合はinsertは挿入せず、saveは元のコンテンツを新しいコンテンツに変更します.
    source code
    function (obj) {
        if (obj == null || typeof obj == "undefined") {
            throw "can't save a null";
        }
        if (typeof obj == "number" || typeof obj == "string") {
            throw "can't save a number or string";
        }
        if (typeof obj._id == "undefined") {
            obj._id = new ObjectId;
            return this.insert(obj);
        } else {
            return this.update({_id:obj._id}, obj, true);
        }
    }
    

    example
    >db.users.save({"userName":"chjzh","pwd":"111111"})
    
  • count

  • 統計セット内の条件を満たすドキュメントの数
    source code
    function (x) {
        return this.find(x).count();
    }
    

    example
    >db.users.count()