日期:2014-05-16  浏览次数:20373 次

二、Mongodb实战之——Mongodb Shell实现简单插入和查询

  1. insert
  2. 向集合中插入文档

    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"})
    

  3. find
  4. 在集合中查询符合条件的文档,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"})
    

  5. save
  6. 向集合中插入文档,与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"})
    

  7. count
  8. 统计集合中满足条件的文档个数

    source code

    function (x) {
        return this.find(x).count();
    }
    

    example

    >db.users.count()