我有貓鼬查找代碼功能,查詢是從引數接收的(這里目前是硬編碼的)假設這是查詢
var arrayOfCategories = [ '63073212ed3e0f85ccffc8cf' , '63073324ed3e0f85ccffc8ff']
var arrayOfSkill = []
這是我的查找代碼
const astro =await Astrologer.find({ 'category.astolCat_id' : {$in: arrayOfCategories},
'skills.astolSkill_id': { $in: arrayOfSkill}})
如果我在 'arrayOfSkill' 陣列中有一個值,但我希望它忽略 ''skills.astolSkill_id': { $in: arrayOfSkill}' 并且僅在 arrayOfSkill 為空白時查詢 arrayOfCategories ,它作業正常。如果 arrayOfSkill 為空白,那么我將回傳空白陣列
uj5u.com熱心網友回復:
逐步建立您的查詢選項...
const query = {};
if (arrayOfCategories.length) {
query["category.astolCat_id"] = { $in: arrayOfCategories };
}
if (arrayOfSkill.length) {
query["skills.astolSkill_id"] = { $in: arrayOfSkill };
}
const astro =await Astrologer.find(query);
uj5u.com熱心網友回復:
const filter = [{}]
arrayOfCategories.length > 0 && filter.push({'category.astolCat_id': {$in: arrayOfCategories}})
arrayOfSkill.length > 0 && filter.push({'skills.astolSkill_id': { $in: arrayOfSkill }})
const astro =await Astrologer.find({$and:filter})
如果需要,可以修改為 ; find({$or: filter})
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/503946.html
上一篇:相同的行程PID
