我想用這個查詢對我的 mongoDb 進行查詢。但是,我在進行動態查詢時遇到了挑戰。
這是用戶的示例陣列。問題是每個用戶的偏好是不同的。
dynamicArray = [
'sample1',
'sample2',
];
const query = {
visibility: true,
$or: [
{"myField.sample1": true},
{"myField.sample2": true},
]
};
const recipes = await Recipe.find(query).countDocuments();
這是有效的,因為我從陣列中硬編碼了 sample1 和 sample2 的值。我需要能夠根據 dynamicArray 中的值將 sample1 和 sample2 動態傳遞到查詢中,而無需像我在這里所做的那樣對它們進行硬編碼。請問我怎樣才能做到這一點?
uj5u.com熱心網友回復:
您可以使用此腳本將物件生成到陣列中。
const dynamicArray = [
'sample1',
'sample2',
];
var query = {visibility: true,
$or: []};
dynamicArray.map(m => {
const key = "myField." m
var obj = {}
obj[key] = true
query.$or.push(obj)})
console.log(query)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/353820.html
標籤:javascript 节点.js MongoDB 猫鼬
上一篇:JSON中位置0處的意外標記“
