
mongodb
安装:https://software.share888.top/note/devtool/detail/MongoDB.html
常用的命令
示例数据(假设集合名为 users)
注意,db这个是写死的,mongodb里面就是这样查询的
批量新增
sql
db.users.insertMany([
{ name: "Alice", age: 25, city: "Beijing", active: true },
{ name: "Bob", age: 30, city: "Shanghai", active: true },
{ name: "Charlie", age: 35, city: "Beijing", active: false },
{ name: "David", age: 25, city: "Guangzhou", active: true }
])
查询
查询所有
sql
db.users.find()
多条件查询(AND)
sql
-- 查询 age 等于 25 的用户
db.users.find({ age: 25 })
-- 返回 age=25 且 city="Beijing" 的用户(Alice)
db.users.find({ age: 25, city: "Beijing" })
范围查询
sql
-- 返回 age 大于 25 的用户(Bob 和 Charlie)
db.users.find({ age: { $gt: 25 } })
-- 查询 age 在 [25, 30] 范围内(>=25 且 <=30)
db.users.find({ age: { $gte: 25, $lte: 30 } })
-- 查询 city 在 ["Beijing", "Shanghai"] 中的用户
db.users.find({ city: { $in: ["Beijing", "Shanghai"] } })
正则表达式查询
sql
-- 使用正则表达式查询 name 包含 "A" 或 "a" 的用户
db.users.find({ name: /a/i })
查询某个字段不存在的文档
sql
-- 返回没有 email 字段的文档。
db.users.find({ email: { $exists: false } })
其他场景
显示指定字段
sql
-- 只返回 name 和 city 字段,不返回 _id。
db.users.find({}, { name: 1, city: 1, _id: 0 })
-- 查询 active 为 true 的用户,并只显示 name
db.users.find({ active: true }, { name: 1, _id: 0 })
分页
sql
db.users.find().limit(2)
排序
使用 .sort()
排序(1: 升序,-1: 降序)
sql
db.users.find().sort({ age: 1 })
组合使用
sql
db.users.find({ active: true }).sort({ age: -1 }).limit(3)