如何在get()函数中实现多个集合?

时间:2018-07-23 07:40:48

标签: node.js angular mongodb express

我的模型 university.js

const mongoose = require('mongoose');

const UniversitySchema = mongoose.Schema({
    worldranking:String,
    countryranking:String,
    universityname:String,
    bachelorprogram:String,
    masterprogram:String,
    phdprogram:String,
    country:String
},{collection:'us'});

const University =module.exports = mongoose.model('University',UniversitySchema);

我的 route.js

const express = require('express');
const router = express.Router();
const University = require('../models/university');



//retrieving data
//router.get('/universities',(req,res,next)=>{
  //  University.find(function(err,universities){
    //    if(err)
      //  {
        //    res.json(err);
        //}
       // res.json(universities);
    //});
//});

router.get('/usa',function(req,res,next){
  University.find()
   .then(function(doc){
     res.json({universities:doc});
   });
});


module.exports= router;

如何在此get()函数中实现多个集合?我将集合名称放入模型中。请为我提供一个在get()函数中调用多个集合的解决方案。

1 个答案:

答案 0 :(得分:1)

以下是为一个模式使用多个集合名称的示例:

const coordinateSchema = new Schema({
  lat: String,
  longt: String,
  name: String
}, {collection: 'WeatherCollection'});

const windSchema = new Schema({
 windGust: String,
 windDirection: String,
 windSpeed: String
}, {collection: 'WeatherCollection'});

//Then define discriminator field for schemas:
const baseOptions = {
  discriminatorKey: '__type',
  collection: 'WeatherCollection'
};

//Define base model, then define other model objects based on this model:
const Base = mongoose.model('Base', new Schema({}, baseOptions));
const CoordinateModel = Base.discriminator('CoordinateModel', coordinateSchema);
const WindModel = Base.discriminator('WindModel', windSchema);

//Query normally and you get result of specific schema you are querying:
mongoose.model('CoordinateModel').find({}).then((a)=>console.log(a));

简而言之,

在猫鼬中,您可以执行以下操作:

var users = mongoose.model('User', loginUserSchema, 'users');
var registerUser = mongoose.model('Registered', registerUserSchema, 'users');

这两个模式将保存在“用户”集合中。

有关更多信息,请参阅文档:http://mongoosejs.com/docs/api.html#index_Mongoose-model或可以查看以下gist可能会有帮助。

希望这对您有帮助。您需要根据需要进行修改。