`

MongoDB 实战笔记 二

阅读更多

 

MongoDB  实战笔记

 

count 查询记录条数

db.users.find().count(); 

 

以下返回的不是 5,而是 user 表中所有的记录数量

db.users.find().skip(10).limit(5).count(); 

 

如果要返回限制之后的记录数量,要使用 count(true)或者 count(非 0) 

db.users.find().skip(10).limit(5).count(true);

 

 

从第 3 条记录开始,返回 5 条记录(limit 3, 5) 

db.users.find().skip(3).limit(5);

 

以年龄升序 asc 

db.users.find().sort({age: 1}); 

以年龄降序 desc 

db.users.find().sort({age: -1});

 

MongoDB 也是用游标来循环处理每一条结果数据,具体语法如

下:

> for( var c = db.t3.find(); c.hasNext(); ) { 

...    printjson( c.next()); 

... }

MongoDB 还有另一种方式来处理游标

> db.t3.find().forEach( function(u) { printjson(u); } );

 

MongoDB 同样支持存储过程。关于存储过程你需要知道的第一件事就是它是用 javascript 来

写的。也许这会让你很奇怪,为什么它用 javascript 来写,但实际上它会让你非常满意,

MongoDB 存储过程是存储在 db.system.js 表中的,我们想象一个简单的 sql 自定义函数如下:

function addNumbers( x , y ) { 

    return x + y; 

}

下面我们将这个 sql 自定义函数转换为 MongoDB 的存储过程: 

> db.system.js.save({_id:"addNumbers", value:function(x, y){ return x + y; }});

调用一下这个存储过程: 

> db.eval('addNumbers(3, 4.2)'); 

7.2

 

db.eval()是一个比较奇怪的东西,我们可以将存储过程的逻辑直接在里面并同时调用,而无

需事先声明存储过程的逻辑。

> db.eval( function() { return 3+3; } ); 

6

 

1、logging 

MongoDB 中日志机制的首选,MongoDB 没有使用日志文件,而是把日志事件存储在数

据库中。在一个没有索引的 capped collection 中插入对象的速度与在文件系统中记录日

志的速度相当。

2、cache 

缓存一些对象在数据库中,比如计算出来的统计信息。这样的需要在 collection 上建立

一个索引,因为使用缓存往往是读比写多。

3、auto archiving 

可以利用 capped collection 的 age-out 特性,省去了写 cron 脚本进行人工归档的工作

 

1、 为了发挥 capped collection 的最大性能,如果写比读多,最好不要在上面建索引,否则

插入速度从"log speed"降为"database speed"。

2、使用"nature ordering"可以有效地检索最近插入的元素,因为 capped collection 能够保证

自然排序就是插入时的顺序,类似于 log 文件上的 tail 操作。

 

删除MongoDB Windows服务

>mongod.exe --remove

(http://blog.csdn.net/xiaochunyong/article/details/7730841)

 

mongofiles put testfile

mongofiles list

 

db.fs.files.find()

{ "_id" : ObjectId("4fc60175c714c5d960fff76a"), "filename" : "testfile", "chunkSize" : 262144, 

"uploadDate" : ISODate("2012-05-30T11:16:05.745Z"), "md5" : 

"8addbeb77789ae6b2cb75deee30faf1a", "length" : 16 }

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics