二、Mongodb実戦の--Mongodb Shellは簡単な挿入とクエリーを実現する
コレクションへのドキュメントの挿入
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()は集合内のすべてのドキュメントを返します.
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"})
コレクションにドキュメントを挿入します.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"})
統計セット内の条件を満たすドキュメントの数
source code
function (x) {
return this.find(x).count();
}
example
>db.users.count()