Links

Schema Definition

Rooms

{
"_id": "22nytdn4QqKvSk2Av", // Random.id()
"t": "p", // String Room Type: c = chanel, d = direct, p (change to g) = group, v = visitor
"ts": new Date(1432937851208), // Date Room Creation Timestamp
"name": "general", // String Room Name (t:d -> empty)
"lm": new Date(1432937851208), // Date Last Message Timestamp
"msgs": 2345, // Integer Messages Counter
"cl": true, // Boolean If users can leave room
"ro": false, // Boolean Read Only
"usernames": [ // Array(String) Room Users
"username1", // String User Username
"username2",
"username3"
],
"u": { // Object Owner User
"_id": "CABrXSHpDqbZXGkYR", // Random.id() User Id
"username": "john" // String User Username
},
"customFields": { // Object User defined custom fields (for t:c and t:p only)
"userDefinedField": "userValue", // User defined field example
"userDefinedField2": true, // User defined field example
"userObject3": { // User defined field example
"a": "hello",
"b": "lalala"
}
}
}

Fields

Fields
Type
Description
_id
Random.id()
Room Id
t
String
Room Type
ts
Date
Room Creation Timestamp
name
String
Room Name (t:d -> empty)
lm
Date
Last Message Timestamp
msgs
Integer
Messages Counter
cl
Boolean
If users can leave room
ro
Boolean
Read Only
usernames
Array[String]
Room Users
usernames.0
String
User Username
u
Object
Owner User
u._id
Random.id()
User Id
u.username
String
User Username
customFields
Object
User custom fields (for t:c and t:p only)

Indexes

Fields
Options
name
unique, sparce
u._id

Subscriptions

{
"_id": "22nytdn4QqKvSk2Av", // Random.id()
"t": "p", // String Subscription Type (copy from Room)
"ts": new Date(1432937851208), // Date Subscription Creation Timestamp
"ls": new Date(1432937851208), // Date Last Seen Timestamp
"name": "my-cool-friends", // String Subscription Name (t:d -> target username)
"rid": "25fkmHMDeFp57ZqYg", // Random.id() Room Id
"f": true, // Boolean Favorited
"open": true, // Boolean Is Room Opened
"alert": true, // Boolean Room has unread messages for this user
"unread": 5, // Integer Counter of unread messages with mentions or from direct messages
"u": { // Object User
"_id": "CABrXSHpDqbZXGkYR", // Random.id() User Id
"username": "liam" // String User Username
},
"v": { // Object Visitor
"_id": "CABrXSHpDqbZXGkYR", // Random.id() Visitor Id
"username": "anonymous" // String Visitor Username
},
"customFields": { // Object User defined custom fields
"userDefinedField": "userValue", // User defined field example
"userDefinedField2": true, // User defined field example
"userObject3": { // User defined field example
"a": "hello",
"b": "lalala"
}
}
}

Fields

Fields
Type
Description
_id
Random.id()
Subscriptions Id
t
String
Subscription Type (copy from Room)
ts
Date
Subscription Creation Timestamp
ls
Date
Last Seen Timestamp
name
String
Subscription Name (t:d -> target username)
rid
Random.id()
Room Id
f
Boolean
Favorited
open
Boolean
Is Room Opened
alert
Boolean
Room has unread messages for this user
unread
Integer
Counter of unread messages with mentions or from direct messages
u
Object
User
u._id
Random.id()
User Id
u.username
String
User Username
v
Object
Visitor
v._id
Random.id()
Visitor Id
v.username
String
Visitor Username
customFields
Object
User custom fields
Notes about customFields:
  • customFields inherits from room's customFields for channels (Room Type: c = chanel) and groups (Room Type: p = group) and changes with room's customFields
  • customFields inherits from user's customFields for Direct Messages (Room Type: d = direct) and changes with user's customFields. Note that users of Direct Messages room will have own customFields.

Indexes

Fields
Options
rid, u._id
unique
u._id, name, t
unique
open
alert
unread

Messages

{
"_id": "22nytdn4QqKvSk2Av", // Random.id()
"t": "p", // String Message Type
"ts": new Date(1432937851208), // Date Message Creation Timestamp
"rid": "25fkmHMDeFp57ZqYg", // Random.id() Room Id
"msg": "Yeah, doesn't seem to like it", // String Message Body
"url": [ // Array(String) Message URLs
"http://google.com/"
],
"expireAt": new Date(1432937951208), // Date Message auto-delete trigger
"mentions": [ // Array(String) Mentioned Usernames
"username1"
],
"u": { // Object User
"_id": "CABrXSHpDqbZXGkYR", // Random.id() User Id
"username": "john" // String User Username
},
"v": { // Object Visitor
"_id": "CABrXSHpDqbZXGkYR", // Random.id() Visitor Id
"username": "anonymous" // String Visitor Username
}
}

Indexes

Fields
Options
rid, ts
expireAt
expireAfterSeconds

Visitors

{
"_id": "22nytdn4QqKvSk2Av", // Random.id()
"name": "John", // String Name
"email": "[email protected]", // String Email
"phone": "555 876333443", // String Phone
"token": "token" // String Token
}

Indexes

Last modified 8mo ago