我正在研究NodeJS RESTful API,当然使用mongoose和MongoDB。
我有像这样的猫鼬模型
const mySchema = mongoose.Schema({
_id: {type: mongoose.Schema.Types.ObjectId},
Cities: [{type: mongoose.Schema.Types.ObjectId, ref: 'City'}]
}
和这样的路线
router.post('/', (req, res, next) => {
for (const cityId of req.body.cities) {
City.findById(cityId)
.then(city => {
if (!city) {
return routingResult.NotFound(res, "One city doesnt exists.");
}
})
.catch(err => {
console.error(err);
routingResult.Error(res, err);
});
正如您所看到的,在创建新文档并保存之前,我试图检查req.body.cities数组中的所有元素是否都存在于数据库中。
我需要知道是否有办法同时检查所有元素。 (那些元素是ObjectID' s引用我的数据库上的另一个集合),类似于City.find({"$all":req.body.cities})
...我知道这不是正确的实现,我只是想知道是否有类似的东西这一点。
如果任何objectId不存在,我不得创建要插入Cities集合的新文档。
有没有办法实现这个目标?