MongoDB中如何根据Cuisine对象数组内的name字段筛选文档
MongoDB 基于数组对象字段的筛选查询方法
针对你提供的数据结构,要根据Cuisine数组中对象的name字段筛选文档,有以下几种常用查询方式:
1. 筛选包含指定菜系的文档
只要Cuisine数组中存在任意一个对象的name匹配目标值,就返回该文档:
db.your_collection_name.find({ "Cuisine.name": "North Indian" })
(替换your_collection_name为你实际的集合名称)
2. 筛选同时包含多个指定菜系的文档
要求文档的Cuisine数组中同时存在所有指定菜系名称,使用$all操作符:
db.your_collection_name.find({ "Cuisine.name": { $all: ["North Indian", "Fast Food"] } })
3. 筛选包含任意一个指定菜系的文档
匹配多个菜系中的任意一个,使用$in操作符:
db.your_collection_name.find({ "Cuisine.name": { $in: ["North Indian", "Chinese", "Italian"] } })
4. 精确匹配数组中的某个对象(多条件)
需要同时匹配Cuisine对象中的name和其他字段(比如cuisine ID),使用$elemMatch操作符:
db.your_collection_name.find({ "Cuisine": { $elemMatch: { "name": "North Indian", "cuisine": 1 } } })
内容的提问来源于stack exchange,提问作者Harsh
相关产品推荐
相关产品推荐

