我是Mongoose的新手。我很惊讶在数据库中的每个集合中获取数据。
我有一些字段国家的集合。
假设 company_Information 是将国家/地区作为字段的集合。
var companyInformation = new Schema({
....
country:{type: String},
..
})
mongoose.model('company_Information',companyInformation);
类似的国家/地区字段可能会出现在其他一些集合中。
而不是使用
搜索每个集合中的国家/地区的值company_Information.find({ 'country': 'India' })
someCollection.find({ 'country': 'India' })
someCollection2.find({ 'country': 'India' })
有没有办法搜索数据库中每个集合的记录?
工作示例对我有帮助。
谢谢。
答案 0 :(得分:0)
例如,您可以使用以下内容:
const mongoose = require('mongoose');
const findAllCountries = (country_name)=>{
let models = [];
models.push(mongoose.models.someCollection1);
...
models.push(mongoose.models.someCollectionN);
return Promise.all(models.map(model=>model.find({'country': country_name})));
}
所以你可以像这样使用这个函数:
findAllCountries('USA').then(result=>{
console.log(result);
}).catch(err=>{throw err;})