一尘不染

MongoDB:查询结果匹配数组中的任何值

node.js

我有一些文件:

{

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

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

我想要得到的结果sensorID,其sotreID匹配的任何值storeIDarray一样['715R','312R','789R']

在这种情况下,我想得到结果:一个sensorID数组: [ "0BBA", "0BB9","0BBB"]

我该怎么办?谢谢。


阅读 527

收藏
2020-07-07

共1个答案

一尘不染

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

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

然后,您可以reduce在结果数组上使用方法:

yourResult.reduce((acc, el) => acc.concat(el.sensorID), []);

希望对您有帮助,
最好的问候

2020-07-07