我有一些文件:

{

    "storeID" : "715R",
    "sensorID" : [
        "0BBA",
        "0BB9"
    ]
}
{

    "storeID" : "312R",
    "sensorID" : [
        "0BBB"
    ]
}

我想获得sensorIDsotreID中的任何值匹配的storeIDarray的结果,例如['715R','312R','789R']
在这种情况下,我想得到结果:sensorID数组:[ "0BBA", "0BB9","0BBB"]
我应该怎么办?谢谢。

最佳答案

您应该看一下MongoDB中的 $in 运算符。
然后将它与find一起使用,以使您的请求更快,可以使用 lean 方法:有了它,mongoDB将返回JS对象而不是Mongoose模型/对象。

YourModel.find({storeID: {$in: storeIDarray }}).lean().exec(yourCallback);

然后,您可以在结果数组上使用reduce方法:
yourResult.reduce((acc, el) => acc.concat(el.sensorID), []);

希望能帮助到你,
此致

09-18 11:11