高级集合(collection)
1,固定集合
.固定集合进行插入时速度极快,因为插入时无需分配内存。
.固定集合是一个环形队列,新数据插入时自动淘汰旧的数据。
.固定集合在使用前显示的创建
1.1 创建固定集合
#创建一个大小为100000字节的固定集合
db.createCollection("my_collection", {capped: true, size: 100000});
#创建一个大小为100000字节,文档数量限制为100个。当容量还没有满时会根据文档的大小来启用淘汰机制,若容量已满,文档限制不再起作用。
> db.createCollection("my_collection", {capped: true, size: 100000, max: 100});
{ "ok" : 1 }
1.2 由其他的集合转换成固定集合
把集合cc转换成大小为10000字节的固定集合。
> db.runCommand({convertToCapped: "cc", size: 10000});
{ "ok" : 1 }
1.3 固定集合的自然排序
固定集合总是按插入的顺序排序的,自然顺序就是与此相同的顺序。
#按照插入顺序相反的顺序排序:
db.my_collection.find().sort({"$natural" : -1})
1.4 尾部游标
$cursor = $collection->find()->tailable();
while (true) {
if (!$cursor->hasNext()) {
if ($cursor->dead()) {
break;
}
sleep(1);
}
else {
while (cursor->hasNext()) {
do_stuff(cursor->getNext());
}
}
}
尾部游标没有被销毁,它只处理结果,或是等待更多的结果。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/20498361/viewspace-720295/ ,如需转载,请注明出处,否则将追究法律责任。