我正在使用socket.io进行服务器和客户端之间的实时通信,因此,我想听取特定文档中的更改,以便将在线列表更新到客户端
这是我的集合架构:
var registerCompanySchema = new Schema({
sn : { type: Number, unique:true }
, companyName: String
, employees:[String],
companyId:{type:Number,unique:true},
onlineEmployees:[String] //uname
});
我使用数组'onlineEmployees'来存储当前在线员工的用户名 我是mongoDB的新手....请在回答中提供一些细节。
答案 0 :(得分:0)
如this question中所述,观看oplog可能是您最好的选择。
如果您使用mongoskin
,可以在this example from their wiki上尝试变体:
skin = require "mongoskin"
db = skin.db "localhost:27017/local"
#Cursor on oplog (a capped collection) which maintains a history for replication
#oplog can be used only when replication is enabled
# Use oplog.rs instead of oplog.$main if you are using replica set
oplog = db.collection "oplog.$main"
cursor = oplog.find({'ns': "icanvc.projects"},{tailable: yes, awaitData: yes})
#Using cursor.nextObject will be slow
cursor.each (err, log)->
console.error err if err
console.log log if not err