繁体   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