零、参考资料
https://docs.mongoing.com/
一、数据库级别操作
1.1 命令内容
1.启动 MongoDB 服务器:
mongod
2.连接到 MongoDB 服务器
mongo
3.显示数据库列表
show dbs # 或者 show databases
4.创建/使用数据库——没有这个数据库就创建,有就使用
use mydatabase
5.删除数据库
use mydatabase // 切换到要删除的数据库 db.dropDatabase()
1.2 注意要点
在MongoDB中,show dbs命令显示的是所有已经包含数据的数据库列表。如果你刚刚创建了一个新的数据库但尚未往其中插入任何数据,那么在执行show dbs时是看不到这个新数据库的。要显示当前数据库,你可以使用db命令展示当前的数据库
db
如果你想要显示所有数据库,包括没有数据的数据库,你可以插入一些数据到新创建的数据库,然后再次执行show dbs,可以依次执行以下命令,就可以看到你新建的数据库了
use your_new_database db.your_collection.insert({key: "value"}) show dbs
二、数据库中的集合(类似于Mysql的表)操作
2.1 命令内容
创建集合(类似于表):
db.createCollection("")
显示集合列表:
show collections
插入文档数据:
db..insertOne({ key: "value" }) db..insertMany([ { key: "value1" } { key: "value2" } ])
查询文档:
# 查询所有数据 db..find() # 查询数据条数 db..count({})
更新文档数据:
db..updateOne({ key: "value" }, { $set: { new_key: "new_value" } }) # 多条更新用updateMany
删除文档数据:
db..deleteOne({ key: "value" }) # 如果有个数据 # { # outline: { # name: "123456", # ... # }, # ... # } # 而我们需要检索到对应的条件进行删除,则可以 db..deleteMany({ "outline.name": "aaa" })
删除集合:
db..drop()
三、复杂案例
场景:
假设我们有一个 users 集合,其中包含用户的信息。每个文档包含用户的姓名 (name)、年龄 (age)、所在城市 (city)、注册日期 (registration_date) 等信息。
步骤:
1.创建数据库和集合,并插入一些数据:
use complex_query_example db.users.insertMany([ { name: "Alice", age: 25, city: "New York", registration_date: ISODate("2022-01-01") }, { name: "Bob", age: 30, city: "San Francisco", registration_date: ISODate("2022-02-15") }, { name: "Charlie", age: 28, city: "Los Angeles", registration_date: ISODate("2022-03-20") }, { name: "David", age: 35, city: "New York", registration_date: ISODate("2022-04-10") }, { name: "Eve", age: 22, city: "San Francisco", registration_date: ISODate("2022-05-05") } ])
2.执行复杂查询:
现在,执行一个复杂查询,找出年龄在 25 到 30 岁之间、居住在 "New York" 或 "San Francisco" 的用户,并按注册日期降序排序。
db.users.find({ $and: [ { age: { $gte: 25, $lte: 30 } }, { $or: [ { city: "New York" }, { city: "San Francisco" } ] } ] }).sort({ registration_date: -1 })
这个查询使用了 MongoDB 的 $and 和 $or 操作符,同时结合了年龄和城市的条件。结果会按照注册日期降序排序。
解释:
$and: 匹配同时满足多个条件的文档,就是在数组中的条件全部满足。
$or: 匹配满足任一条件的文档,就是在数组中的条件满足一个就行。
$gte, $lte: 大于等于、小于等于条件。
sort(): 对结果进行排序,-1 表示降序。
领取专属 10元无门槛券
私享最新 技术干货