这是我的“用户组”数据
{
"_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 North
和group 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/