MongoDB có những gì được gọi capped collections
và tailable cursors
cho phép MongoDB đẩy dữ liệu đến người nghe.
A capped collection
thực chất là một bộ sưu tập có kích thước cố định và chỉ cho phép chèn thêm. Đây là những gì nó sẽ trông giống như để tạo ra một:
db.createCollection("messages", { capped: true, size: 100000000 })
Hồng ngọc
coll = db.collection('my_collection')
cursor = Mongo::Cursor.new(coll, :tailable => true)
loop do
if doc = cursor.next_document
puts doc
else
sleep 1
end
end
PHP
$mongo = new Mongo();
$db = $mongo->selectDB('my_db')
$coll = $db->selectCollection('my_collection');
$cursor = $coll->find()->tailable(true);
while (true) {
if ($cursor->hasNext()) {
$doc = $cursor->getNext();
print_r($doc);
} else {
sleep(1);
}
}
Con trăn (của Robert Stewart)
from pymongo import Connection
import time
db = Connection().my_db
coll = db.my_collection
cursor = coll.find(tailable=True)
while cursor.alive:
try:
doc = cursor.next()
print doc
except StopIteration:
time.sleep(1)
Perl (bằng Max )
use 5.010;
use strict;
use warnings;
use MongoDB;
my $db = MongoDB::Connection->new;
my $coll = $db->my_db->my_collection;
my $cursor = $coll->find->tailable(1);
for (;;)
{
if (defined(my $doc = $cursor->next))
{
say $doc;
}
else
{
sleep 1;
}
}
Tài nguyên bổ sung:
Hướng dẫn về Ruby / Node.js hướng dẫn bạn thông qua việc tạo một ứng dụng nghe các phần chèn trong bộ sưu tập có giới hạn MongoDB.
Một bài báo nói về con trỏ có sẵn chi tiết hơn.
Các ví dụ về PHP, Ruby, Python và Perl về việc sử dụng các con trỏ có sẵn.