node.js - 如何在node和mongodb中查找?

标签 node.js mongodb express

这是我的“用户组”数据

{
    "_id": {
        "$oid": "58f7537ec422895572e988a1"
    },
    "name": "aaa",
    "groupname": "group north,group south",
    "mobilenumber": "0509867865",
    "userid": "6035555c16"

}

这里是我的“群组”收集数据

{
    "_id": {
        "$oid": "58e5eb3c035555c33f979daf"
    },
    "groupname": "group north",
    "message": [
        {
            "val": "hai how are you",
            "key": "1"
        },
        {
            "val": "i am fine",
            "key": "2"
        }

    ]
},
{
    "_id": {
        "$oid": "3c035555c33f979daf58e5eb"
    },
    "groupname": "group south",
    "message": [
        {
            "val": "testing",
            "key": "1"
        }

    ]
},
{
    "_id": {
        "$oid": "55c3c035533f979f58e5ebda"
    },
    "groupname": "group east",
    "message": [
        {
            "val": "where are you from",
            "key": "1"
        }

    ]
}

在用户组中,我试图根据mobilenumber获取groupname,并且我有两个组:group Northgroup South 。获取组名后,我需要获取消息。我该如何写这个来找到这个的条件。我的目标是向用户发送组北,组南消息。

Usergroup.findOne({
            mobilenumber: 0509867865
        },
        function(err, usergroup) {
            if (err) {
                return handleError(res, err);
            }
            if (!usergroup) {
                return res.status(404).send('Not Found');
            }
            console.log(usergroup.groupname);
        //group north ,group south
            Group.find({
                    groupname: 
                },
                function(err, group) {
                    if (err) {
                        return handleError(res, err);
                    }

                    return res.json(group);
                });
        });

最佳答案

您可以使用$in运算符:

Usergroup.findOne({
            mobilenumber: 0509867865
        },
        function(err, usergroup) {
            if (err) {
                return handleError(res, err);
            }
            if (!usergroup) {
                return res.status(404).send('Not Found');
            }
            console.log(usergroup.groupname);
        //group north ,group south
            Group.find({
                    groupname: { $in: usergroup.groupname.split(",") } 
                },
                function(err, group) {
                    if (err) {
                        return handleError(res, err);
                    }

                    return res.json(group);
                });
        });

关于node.js - 如何在node和mongodb中查找?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43501008/

相关文章:

node.js - 在passport js反序列化中,将 session 数据存储在浏览器cookie中

java - Mongodb 聚合(Java/Spring)查询以获取最后一个子元素

angularjs - 从一个 Angular 应用程序重定向到 ionic 中的另一个应用程序

javascript - app.get 和 router.get 之间的区别(Express)

javascript - findOneAndRemove 和 findOneAndUpdate 未按预期工作

sql-server - Azure 函数 httptrigger 未返回来自 SQL Server 请求的响应

mongodb - Spark无法使用mongo-hadoop-connector的BSONFileInputFormat编译newAPIHadoopRDD

java - 如何使用 spring mongoTemplate 使用 DbRef 更新 MongoDB 文档

javascript - 如何在 Node.js 服务器上部署 Vue.js 应用程序

node.js - socket.io,我如何知道套接字是否保持事件状态?