javascript - 通过从同一模式创建多个集合来将数据存储在 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');
解决方案
推荐阅读
- c# - jQuery datatables v1.10 服务器端 - 向服务器方法发送附加参数
- r - 使用 semi_join 查找相似性但错误地返回无
- c++ - 无效的 free(): boost::filesystem::path::~path()
- apache-spark - Spark 是否支持倾斜提示?
- orbeon - Orbeon 升级到 2017.2 在表单编辑时抛出错误
- css - 如何在 div 上为移动但固定的桌面设置自动高度
- http - 每秒检查 HTTP 服务器响应
- javascript - 在java脚本中添加代码时弹出窗口不打开
- sql - 为过程或函数值提供的参数数量很少
- r - Caret/CaretEnsemble:错误的回归模型类型