簡體   English   中英

如何使用mongoose(express.js)為選擇數據編寫條件?

[英]How to write condtion for select data using mongoose(express.js)?

例如我給了5個對象,即移動賣家列表。我只想選擇誰都在賣品牌:諾基亞,型號名稱:Lumia,子模型:Lumia 735 TS,Lumia 510我該如何在快遞中寫條件,如果用戶選擇品牌:諾基亞,型號名稱:Lumia,子型號:Lumia 735 TS我如何在快遞中寫條件,我已給我的控制器請幫助我在最近3天內努力工作。 在mongodb中存儲的賣方列表

object 1

{
    "_id": {
        "$oid": "56a63a968411612f36ab4b5d"
    },
    "default": [],
    "Categories": [
        {
            "models": [
                {
                    "submodel": [
                        {
                            "price": "7500",
                            "name": "Lumia 735 TS"
                        },
                        {
                            "price": "1000",
                            "name": "Lumia 510"
                        }
                    ],
                    "name": "Lumia"
                }
            ],
            "brandname": "Nokia",
            "id": "986745"
        }
    ],
    "Storename": "Poorvika Mobiles",
    "__v": 0
}

object 2:

{
    "_id": {
        "$oid": "56a63b418411612f36ab4b5e"
    },
    "default": [],
    "Categories": [
        {
            "models": [
                {
                    "submodel": [
                        {
                            "price": "7500",
                            "name": "Lumia 735 TS"
                        },
                        {
                            "price": "8500",
                            "name": "Lumia 830"
                        }
                    ],
                    "name": "Lumia"
                }
            ],
            "brandname": "Nokia",
            "id": "986745"
        }
    ],
    "Storename": "Nokia Store",
    "__v": 0
}

object 3:

{
    "_id": {
        "$oid": "56a63b738411612f36ab4b5f"
    },
    "default": [],
    "Categories": [
        {
            "models": [
                {
                    "submodel": [
                        {
                            "price": "7500",
                            "name": "Lumia 735 TS"
                        },
                        {
                            "price": "8500",
                            "name": "Lumia 830"
                        }
                    ],
                    "name": "Lumia"
                },
                {
                    "submodel": [
                        {
                            "price": "12000",
                            "name": "Asha Asn01"
                        },
                        {
                            "price": "5000",
                            "name": "Nokia Asha Dual sim"
                        }
                    ],
                    "name": "Asha"
                }
            ],
            "brandname": "Nokia",
            "id": "986745"
        }
    ],
    "Storename": "Sun Mobiles",
    "__v": 0
}

object 4:

{
    "_id": {
        "$oid": "56a63b7d8411612f36ab4b60"
    },
    "default": [],
    "Categories": [
        {
            "models": [
                {
                    "submodel": [
                        {
                            "price": "7500",
                            "name": "Lumia 735 TS"
                        },
                        {
                            "price": "1000",
                            "name": "Lumia 510"
                        }
                    ],
                    "name": "Lumia"
                },
                {
                    "submodel": [
                        {
                            "price": "12000",
                            "name": "Asha Asn01"
                        },
                        {
                            "price": "5000",
                            "name": "Nokia Asha Dual sim"
                        }
                    ],
                    "name": "Asha"
                }
            ],
            "brandname": "Nokia",
            "id": "986745"
        }
    ],
    "Storename": "Mobile Corner",
    "__v": 0
}

object 5:
{
    "_id": {
        "$oid": "56a63b948411612f36ab4b61"
    },
    "default": [],
    "Categories": [
        {
            "models": [
                {
                    "submodel": [
                        {
                            "price": "8500",
                            "name": "Trend 840"
                        },
                        {
                            "price": "10000",
                            "name": "Galaxy Note Duos"
                        }
                    ],
                    "name": "Galaxy"
                }
            ],
            "brandname": "Samsung",
            "id": "144745"
        }
    ],
    "Storename": "Asath Mobile Center",
    "__v": 0
}


object 6:

{
    "_id": {
        "$oid": "56a63ba48411612f36ab4b62"
    },
    "default": [],
    "Categories": [
        {
            "models": [
                {
                    "submodel": [
                        {
                            "price": "8500",
                            "name": "Trend 840"
                        },
                        {
                            "price": "10000",
                            "name": "Galaxy Note Duos"
                        }
                    ],
                    "name": "Galaxy"
                },
                {
                    "submodel": [
                        {
                            "price": "6700",
                            "name": "Asha 230"
                        },
                        {
                            "price": "8500",
                            "name": "Asha Asn01"
                        }
                    ],
                    "name": "Asha"
                }
            ],
            "brandname": "Samsung",
            "id": "144745"
        }
    ],
    "Storename": "Zigzag Mobiles",
    "__v": 0
}

object 7:   

{
    "_id": {
        "$oid": "56a63baf8411612f36ab4b63"
    },
    "default": [],
    "Categories": [
        {
            "models": [
                {
                    "submodel": [
                        {
                            "price": "7500",
                            "name": "Lumia 735 TS"
                        },
                        {
                            "price": "1000",
                            "name": "Lumia 510"
                        }
                    ],
                    "name": "Lumia"
                },
                {
                    "submodel": [
                        {
                            "price": "12000",
                            "name": "Asha Asn01"
                        },
                        {
                            "price": "5000",
                            "name": "Nokia Asha Dual sim"
                        }
                    ],
                    "name": "Asha"
                }
            ],
            "brandname": "Nokia",
            "id": "986745"
        },
        {
            "models": [
                {
                    "submodel": [
                        {
                            "price": "8500",
                            "name": "Trend 840"
                        },
                        {
                            "price": "10000",
                            "name": "Galaxy Note Duos"
                        }
                    ],
                    "name": "Galaxy"
                },
                {
                    "submodel": [
                        {
                            "price": "6700",
                            "name": "Asha 230"
                        },
                        {
                            "price": "8500",
                            "name": "Asha Asn01"
                        }
                    ],
                    "name": "Asha"
                }
            ],
            "brandname": "Samsung",
            "id": "144745"
        }
    ],
    "Storename": "Mobile Bazar",
    "__v": 0
}

控制器:

exports.shopByPhone = function(req, res) { 

    Shop.find().sort('-created').populate('user', 'displayName').exec(function(err, shops) {
        if (err) {
            return res.status(400).send({
                message: errorHandler.getErrorMessage(err)
            });
        } else {
            res.jsonp(shops);
        }
    });
};

條件1:我想過濾僅銷售商品的數據

品牌:諾基亞

型號:Lumia

子型號:Lumia 735 TS,Lumia 510

如果符合上述條件,則應顯示這3個賣家

1,Poorvika手機

2.移動角落

3.流動市場

這3家店鋪只賣

品牌:諾基亞

型號:Lumia

子型號:Lumia 735 TS,Lumia 510

條件2:

我想過濾僅銷售商品的數據

品牌:諾基亞

型號:Lumia

子型號:Lumia 735 TS

如果符合上述條件,則應顯示這3個賣家

1,Poorvika手機

2.移動角落

3.流動市場

這3家店鋪只賣

品牌:諾基亞

型號:Lumia

子型號:Lumia 735 TS,Lumia 510

嘗試

find({
    'Categories.brandname':'Nokia', 
    'Categories.models.name':'Lumia', 
    'Categories.models.submodel.name':
        {'$all':['Lumia 510', 'Lumia 735 TS']}
})

$all將為您提供同時出售Lumia 510 Lumia 735的商店。如果您需要選擇這些模型之一的查詢,請改用$in

暫無
暫無

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

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