NodeJS和MongoDB的架构建议

时间:2018-10-12 10:51:46

标签: node.js database mongodb nosql

我在Node.jsMongoDB API中有问题

由于MongoDBNoSQL,因此我们不能像SQL那样使用关系查询,因此,我必须从所有业务中抢购业务,然后为该业务找到用户,然后必须检查用户角色(根据逻辑),然后我可以找到设备信息,在其中我获得了用于向移动设备和网络发送推送通知的设备令牌,其中device_type是网络还是移动设备。

这样一来,我可以发送推送通知,现在出现问题时,我从客户端获取其他信息,就像我们需要将通知存储在架构中一样。因此,在发送推送通知后,我必须将通知存储到一个架构中。更新我的代码以存储该通知时,有些通知已存储,有些则没有,我需要知道情况(代码结构或数据结构)有什么问题。

我知道我必须像RDBMS一样管理数据结构。如果我对数据结构有误,请按照MongoDB结构用适当的结构启发我,如果结构没有问题,请向我介绍代码结构。

1 个答案:

答案 0 :(得分:0)

问题出在您的代码之内

let count = 0;
tokens.forEach(function (to) {
    let message = {
        to: to,
        notification: {
            title: varConst.APP_NAME,
            body: notification
        },
        data: payload
    };

    fcmWeb.send(message, function (err, response) {
        if (err) {
            console.log("Something has gone wrong!");
        } else {
            console.log("Successfully sent with response: ", response);
        }

        count++;
        if (count == tokens.length) {
            callback("Send All");
        }
    });
});

在上面的代码块中,无需使用forEach即可,只需提供注册ID的数组即可,剩下的部分由fcm负责。

let message = {
    registration_ids:["eJ8-S5jddyI:APA91bG1jmJBVEtB04","eJ8-S5jddyI:APA91bG1jmJBVEtB04"],
    notification: {
        title: varConst.APP_NAME,
        body: notification
    },
    data: payload
};