MongoDB通过find()方法实现数据过滤,基本语法:
db.collection.find({ field: value })
示例:查询年龄为25的用户
db.users.find({ age: 25 })
示例:查询年龄大于18的用户
db.users.find({ age: { $gt: 18 } })
示例:查询年龄大于18且城市为北京的用户
db.users.find({
$and: [
{ age: { $gt: 18 } },
{ city: "北京" }
]
})
使用正则表达式进行模式匹配:
db.users.find({
name: { $regex: /^张/ }
})
查询嵌套文档字段:
db.users.find({
"address.city": "北京"
})
查询数组包含特定元素的文档:
db.users.find({
hobbies: "篮球"
})
为经常查询的字段创建索引:
db.users.createIndex({ age: 1 })
只返回需要的字段:
db.users.find(
{ age: { $gt: 18 } },
{ name: 1, age: 1 }
)
合理使用查询条件,避免不必要的全集合扫描
db.users.find()
.skip(20)
.limit(10)
db.users.aggregate([
{ $match: { age: { $gt: 18 } } },
{ $group: { _id: "$city", count: { $sum: 1 } } }
])
通过掌握这些MongoDB数据过滤技术,您可以高效地实现各种复杂的数据查询需求,提升数据库操作效率和应用性能。