【发布时间】:2021-10-24 14:17:44
【问题描述】:
我在将base64字符串解码成JSON后得到数据,是这样的。
{
List1: [ 'mk singh', 'saurav kashsyap' ],
List2: [
{ labelName: 'Location', values: ['India','America','Japan'] },
{ labelName: 'gender', values: ['male'] }
]
}
我需要 List2 的第二个元素,即 { labelName: 'gender', values: ['male'] } 并且如果我想从 userProfiles 中找到所有用户,其中字段为 labelName 的值(来自 List2 上方),并且值是来自相应 labelName'values 数组(来自 List2 上方)的任何内容。 这将等同于 userProfiles('Location':{$in:['India','America','Japan']} 这是 userProfiles 架构:
{ "_id" : "6123e7ahdhdfdj334733",
"name" : "Mohit Kumar",
"gender" : "male",
"Location" : "India",
},
{ "_id" : "6123e7ahdhdfdj334731",
"name" : "saurav Kashyap",
"gender" : "male",
"Location" : "Nepal",
},
{ "_id" : "6123e7ahdhdfdj334720",
"name" : "Shaline",
"gender" : "female",
"Location" : "america",
},
这是我的代码
app.get("/getresult", (req, res) => {
let b64string = req.query.filters;
let buf = Buffer.from(b64string, 'base64');
let asciiData = buf.toString('ascii'); //into ascii character
let parseData = JSON.parse(`${asciiData}`); // parsed JSON string
let field = parseData.List2[1].labelName; // gender
let value = parseData.List2[1].values; //['male']
user_profiles.find({
[field]: {$in:[value]}
}, (err, result) => {
if (!err) {
res.send(result);
}
})
});
但我得到一个空数组(结果)。我不知道我在哪里做错了。 请帮忙。
【问题讨论】:
标签: javascript node.js json mongodb mongoose