[英]How do I display only part of the array after findOne in MongoDB?
[英]mongodb How to find only part of an array
我想在下面的數據中得到一個使用“find”函數返回的數組,該數組的內容如下。
{qty:15 warehouse:C},
{qty:20 warehouse:C},
{qty:25 warehouse:C}
我不想要“第一個元素”
我想返回一個 gty 大於 20 的數組。
我怎樣才能做到這一點?
接收mongodb返回的文檔
我必須直接用一個環把它拉出來嗎?
有沒有辦法通過查詢來解決它?
{
_id: ObjectId('60d0b364737d829c870b7571'),
item: 'journal',
instock: [
{
warehouse: 'A',
qty: 5
},
{
warehouse: 'C',
qty: 15
},
{
warehouse: 'C',
qty: 20
},
{
warehouse: 'C',
qty: 25
}
]
}
您可以使用聚合管道:
$match
匹配您要查詢的所有文檔$project
選擇要返回的字段$filter
按某種條件過濾instock
數組db.collection.aggregate([
{
"$match": {
"_id": "id_1"
}
},
{
"$project": {
"item": 1,
"instock": {
"$filter": {
"input": "$instock",
"cond": {
"$gt": [
"$$this.qty",
20
]
}
}
}
}
}
])
這是一個工作示例: https : //mongoplayground.net/p/-RPGEriBxui
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.