MongoDB:查询结果匹配数组中的任何值
我有一些文件:
{ "storeID" : "715R", "sensorID" : [ "0BBA", "0BB9" ] } { "storeID" : "312R", "sensorID" : [ "0BBB" ] }
我想得到sensorID
与sotreID
中任何值匹配的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), []);
希望能帮助到你,
最好的祝福