我有一些文件:
{ "storeID" : "715R", "sensorID" : [ "0BBA", "0BB9" ] } { "storeID" : "312R", "sensorID" : [ "0BBB" ] }
我想要得到的结果sensorID,其sotreID匹配的任何值storeIDarray一样['715R','312R','789R']
sensorID
sotreID
storeIDarray
['715R','312R','789R']
在这种情况下,我想得到结果:一个sensorID数组: [ "0BBA", "0BB9","0BBB"]
[ "0BBA", "0BB9","0BBB"]
我该怎么办?谢谢。
您应该看一下$inMongoDB 中的运算符。然后将它与find一起使用,以使您的请求更快,可以使用lean方法:使用它,mongoDB将返回JS对象而不是Mongoose模型/对象。
$in
lean
YourModel.find({storeID: {$in: storeIDarray }}).lean().exec(yourCallback);
然后,您可以reduce在结果数组上使用方法:
reduce
yourResult.reduce((acc, el) => acc.concat(el.sensorID), []);
希望对您有帮助, 最好的问候