使用Mongoose搜索MongoDB数据库的所有集合中的值?

时间:2017-05-10 14:44:35

标签: mongodb mongoose

我是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' })

有没有办法搜索数据库中每个集合的记录?

工作示例对我有帮助。

谢谢。

1 个答案:

答案 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;})