首页 > 解决方案 > 通过从同一模式创建多个集合来将数据存储在 MongoDB 中是否有效?

问题描述

我想创建一个模式,并从这个模式中制作多个模型。

有人可以告诉我这是否是 MongoDB 的一个好的集合设计吗?我想通过每个集合中的相似数据对我的集合进行分类,以避免通过对象参数进行不必要的搜索。我的应用程序是这样设计的,它只需要一个集合中的数据,就可以在前端表示它。

为了说明这一点,这里是应用程序收集有关本地垃圾熊猫和其他潜伏在阴影中的动物信息的示例。假设我们给他们拍了可爱的照片,用激光雷达扫描他们的脸以进行识别(“激光雷达死了!”),给他们起昵称并存储在 MongoDB 中。现在,我想从页面上的一个集合中加载所有对象,而不是按一个集合中的类型进行搜索。

将所有对象放入一个集合中是否比按类型搜索和缩小范围更有效?

Server.js 中的路由服务器

const router = express.Router();
const {Racoons} = require('../models/mammal');
const {Opossums} = require('../models/mammal');
const {Skunkies} = require('../models/mammal');



router.post("/support_your_local_street_cats", function (req, res) {

    if (req.body.TrashPandaType === "Racoon"){
        const newTag = new Racoons({
            TrashPandaType:     req.body.TrashPandaType,
            nameTag:            req.body.nameTag,
            opposableThumbs:    req.body.opposibleThumbs,
            sweetSmile:         req.body.sweetSmile,
            sizeKg:             req.body.sizeKg,
            trashFoodAllergies: req.body.trashFoodAllergies
            });
    
    
    
    }elseif (req.body.TrashPandaType === "Opossum"){
        const newTag = new Opossums({
            TrashPandaType:     req.body.TrashPandaType,
            nameTag:            req.body.nameTag,
            opposableThumbs:    req.body.opposibleThumbs,
            sweetSmile:         req.body.sweetSmile,
            sizeKg:             req.body.sizeKg,
            trashFoodAllergies: req.body.trashFoodAllergies
            });
    
    
    }elseif (req.body.TrashPandaType === "Skunk"){
        const newTag = new Skunkies({
            TrashPandaType:     req.body.TrashPandaType,
            nameTag:            req.body.nameTag,
            opposableThumbs:    req.body.opposibleThumbs,
            sweetSmile:         req.body.sweetSmile,
            sizeKg:             req.body.sizeKg,
            trashFoodAllergies: req.body.trashFoodAllergies
            });
    }
    
    

    newRequest
        .save()
        .then(result => {
            console.log(result)
            res.json({ state: true, msg: "TrashPanda tagged successfully..!" });
        })
        .catch(error => {
            console.log(error)
            res.json({ state: false, msg: "TrashPanda tagged unsuccessfully..!" });
        })
});

哺乳动物.js 中的模型

const mongoose = require('mongoose');
const trashPanda = mongoose.Schema({

    ObjectProp: {
        TrashPandaType:     String,
        nameTag:            String,
        opposableThumbs:    String,
        sweetSmile:         String.
        sizeKg:             Number,
        trashFoodAllergies: String
      }
    }
    );
    

module.exports = mongoose.model('Racoons', trashPanda, 'Racoons');
module.exports = mongoose.model('Opossums', trashPanda, 'opossums');
module.exports = mongoose.model('Skunkies', trashPanda, 'Skunkies');

标签: javascriptmongodbexpressschema

解决方案


推荐阅读