deepstream.io

Deepstream 1 - n relation


I'm trying to build a user notification using Deepstream.io. I'm using deepstream.io-storage-mongodb for storage. My data structure:

User
=================
id - email - others


Notication
=================
userId - notification

I'm try to implement 1-n modelling deepsteam tutorial. But I can't understand how can I do this. How can I store pointer or how can I point towards a List ? Or how can I implement notification using deepstream ?

Thanks in Advance.


Solution

  • you can try as like as given below (I'm using JS):

    Receive Notication

    var client = deepstream( 'localhost:6020' );
    client.login();
    
    // Unique Identification for user
    let uniqueId = `userId:${userId}`;
    
    // Mongodb collection : Notification 
    statusRecord = client.record.getList("Notification/" + uniqueId);
    
    statusRecord.subscribe(function(data) {
        data.forEach(function(name) {
            var record = client.record.getRecord(name);
            record.whenReady(function(r) {
               // all notification
               console.log( "r ==> ", r.get() );
            });
        });
    });
    

    Send Notification

    const ds = deepstream( 'localhost:6020' );
    
    ds.login();
    
    // userId
    const list = this.ds.record.getList( `Notification/${userId}` );
    
    // id for notification
    let id = `Notification/${this.ds.getUid()}`;
    
    let record = this.ds.record.getRecord(id);
    record.set( {
      message: 'information'// save notification data
    });
    
    list.addEntry(id);
    

    Hope it will solve your problem.