簡體   English   中英

如何從正在填充的字段中刪除字段 mongoose

[英]How to remove a field from field that is being populated mongoose

所以

async findAll(req, res) {
        await WorkModel.find({})
            .sort('when')
            .populate({path: 'artists', populate: { path: 'categories'}})
            .then(response => {
                return res.status(200).json(response);
            })
            .catch(error => {
                return res.status(500).json(error);
            });
    }

我需要在這個 function 中從人群中刪除作品是藝術家,但是當我嘗試像通過

{path: 'artists -works', populate: { path: 'categories'}}

我收到{}響應,甚至在我嘗試時

{path: 'artists -works', populate: { path: 'categories'}}, '-works'

在人口

該方法只是得到一個stackTrace,我沒有線索rn,請幫幫我。

如果您想 select 僅workscategories集合中的字段,請使用填充。 您可以使用select來做到這一點!

試試這個代碼,它對你有幫助! 如需更多幫助mongoosejs.com

async findAll(req, res) {
        await WorkModel.find({})
            .sort('when')
            .populate({path: 'artists', populate: { path: 'categories', select: 'works'}})
            .then(response => {
                return res.status(200).json(response);
            })
            .catch(error => {
                return res.status(500).json(error);
            });
    }

因此,將作品從藝術家的多對多關系中刪除的解決方案是

 async findAll(req, res) {
        await WorkModel.find({})
            .sort('when')
            .populate({path: 'artists', select:'-works', populate: { path: 'categories'}})
            .then(response => {
                return res.status(200).json(response);
            })
            .catch(error => {
                return res.status(500).json(error);
            });
    }

謝謝大家的意見,真的幫了大忙。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM