我正在從具有物件陣列的鍵的集合中查詢物件。我希望它回傳物件并排除陣列中具有“可用:false”的元素。
例如:物件
name: "Willy's Store",
open: [
{day: monday, available: true},
{day: tuesday, available:true},
{day:wensday, available: true},
{day:thursday, available:false},
{day:friday, available:false}
]
在查詢時,預期結果應該是
name: "Willy's Store",
open: [
{day: monday, available: true},
{day: tuesday, available:true},
{day:wensday, available: true},
]
我應該怎么做?
uj5u.com熱心網友回復:
您可以在物件上使用陣列的過濾器概念open來過濾掉available天數。
var data = { "name": "Willy's Store", "open": [{ "day": "monday", available: true }, { "day": "tuesday", available: true }, { "day": "wensday", available: true }, { "day": "thursday", available: false }, { "day": "friday", available: false } ] }
data.open = data.open.filter(subData => subData.available)
console.log(data)
uj5u.com熱心網友回復:
db.collection.aggregate([
{
$match: {
name: "Willy's Store"
}
},
{
$project: {
open: {
$filter: {
input: "$open",
as: "open",
cond: {
$eq: [
"$$open.available",
true
]
}
}
}
}
}
])
這解決了這個例子
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/383618.html
標籤:javascript 节点.js MongoDB 猫鼬
上一篇:f字串格式:顯示數字符號?
