在MongoDB中,查询文档型数据库主要使用查询操作符和查询方法。以下是一些基本的查询操作:
- 查询单个文档:
db.collection_name.find_one({key: value})
例如,查找users
集合中年龄为30的用户:
db.users.find_one({age: 30})
- 查询多个文档:
db.collection_name.find({key: value})
例如,查找users
集合中年龄大于等于18的用户:
db.users.find({age: {$gte: 18}})
- 使用比较操作符:
db.collection_name.find({key: {$operator: value}})
例如,查找users
集合中年龄小于25的用户:
db.users.find({age: {$lt: 25}})
- 使用逻辑操作符:
db.collection_name.find({$and: [{key1: value1}, {key2: value2}, ...]}) db.collection_name.find({$or: [{key1: value1}, {key2: value2}, ...]}) db.collection_name.find({$not: {key: value}})
例如,查找users
集合中年龄大于等于18且名字为"John"的用户:
db.users.find({$and: [{age: {$gte: 18}}, {name: "John"}}])
- 使用正则表达式进行模糊查询:
db.collection_name.find({key: {$regex: /pattern/}})
例如,查找users
集合中名字包含"John"的用户:
db.users.find({name: {$regex: /John/}})
- 查询指定字段:
db.collection_name.find({}, {key1: 1, key2: 1, ...})
例如,查找users
集合中名字和年龄字段:
db.users.find({}, {name: 1, age: 1, _id: 0})
- 分页查询:
db.collection_name.find({key: value}).skip(n).limit(m)
例如,查找users
集合中年龄大于等于18的用户,跳过前10个结果,限制返回3个结果:
db.users.find({age: {$gte: 18}}).skip(10).limit(3)
这些查询操作可以根据实际需求进行组合使用,以满足不同的查询需求。