2

我正在使用 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 的新手......请提供一些详细信息以及您的答案。

4

1 回答 1

0

如本问题所述,观看 oplog 可能是您最好的选择。

如果您正在使用,您可以从他们的 wikimongoskin尝试此示例的变体:

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
于 2013-01-07T21:00:35.083 回答