我正在創建我的專案的后端。在這個專案中,有一些小組,每個小組都有它的參與者。我想在 nodejs 中創建一個函式,用于檢索在 partecipant 欄位(這是一個陣列)中具有給定用戶的所有組。這是組的架構:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const GroupSchema = new Schema({
name: {
type: String,
required: true,
unique: true,
},founder:{
type:String,
required: true,
}, partecipants:{
type: Array,
required:false,
}, files: {
type:Array,
required: false,
}
})
const Group = mongoose.model('Group', GroupSchema);
module.exports = Group;
目前,我只寫了這個:
const getGroupByUser = (req, res) => {
const user = req.body.user;
Group.find()
.then(files => res.json(files))
.catch(err => res.status(400).json('ERROR:' err))
}
但它顯然會回傳所有組。我不知道是否有辦法在承諾中實作它,或者我是否必須像線性搜索一樣回圈遍歷陣列,但對于多種情況。任何的想法?謝謝
uj5u.com熱心網友回復:
const getGroupByUser = (req, res) => {
const user = req.body.user;
const id = req.query.id;
// if id is saved as objectId covert it using Types.ObjectId(id)
Group.find({partecipants: id})
.then(files => res.json(files))
.catch(err => res.status(400).json('ERROR:' err))
}
使用 {partecipants: id} 你告訴 mongoDb 找到所有包含在陣列中的組,你在查詢引數中傳遞的 userId
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/369548.html
上一篇:/root/start.sh:line5:/usr/bin/pm2:Nosuchfileordirectory-DockerContainerisrestarting
下一篇:理解物體框架核心外鍵關系
