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

我有一些文件:

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

我想得到sensorIDsotreID中任何值匹配的sensorID结果,如['715R','312R','789R']

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

我该怎么办? 谢谢。

你应该看看MongoDB中的$in操作符。 使用它来查找,然后,使您的请求更快,您可以使用lean方法:与此同时,mongoDB将返回JS对象,而不是Mongoose模型/对象。

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

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

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

希望能帮助到你,
最好的祝福