javascript - 是否可以同时在不同模型上使用猫鼬函数 find() ?
问题描述
我正在使用 expressJS,我的问题是关于我的控制器之一;如果它们各自的属性“汉字”与 URL 中作为参数传递的汉字匹配,我正在研究 3 个不同的模型。为此,我在我的 3 个模型上调用函数 find(),并将所有结果存储在变量“结果”中以返回它:
const Word = require('../models/wordModel');
const Verb = require('../models/verbModel');
const Adj = require('../models/adjectiveModel');
exports.getWordsByKanji = (req, res, next) => {
let result = [];
Word.find({kanji: {"$regex": req.params.kanji, "$options": "i"}})
.then(word => {
result = word;
Verb.find({kanji: {"$regex": req.params.kanji, "$options": "i"}})
.then(verb => {
for(let i = 0; i < verb.length; i++) {
result.push(verb[i])
}
Adj.find({kanji: {"$regex": req.params.kanji, "$options": "i"}})
.then(adj => {
for(let i = 0; i < adj.length; i++) {
result.push(adj[i])
}
res.status(200).json(result)
})
})
})
.catch((error) => res.status(500).json({ 'Error': error }));
}
这运作良好,但我想知道是否有更有效的方法来做到这一点。这个函数看起来很重,有很多数据,而且它并不是真正的 DRY。干杯!
解决方案
推荐阅读
- coordinates - 使用openlayers计算2点之间的距离
- rest - REST API 在 janus 中被禁用
- c# - 是否可以在一行中确定字符串是否位于字符串数组中的任何位置?
- python - Numpy删除重复行而不考虑行元素的位置
- jmeter - 使用 JMeter 模拟获取网页
- assembly - 为什么 clang 要用这么长的代码序列来构建一个 64 位的常量?
- git - git 提交文件中的 '>8' 是什么意思?
- python - 将多行从 python 控制台复制到主脚本会引入换行符“...”
- django - 将多个字符串存储到 Django 模型中的单个字段
- api - 如何在 LinkedIn API v2 中获取赞助指标,如点击、印象、反应和参与率