MongoDB使用小结
本文将分享MongoDB中一些常用操作,涵盖MongoDB的基础操作以及进阶应用,帮助读者更好地使用MongoDB。
基础操作
连接MongoDB
可以使用 mongo shell 连接MongoDB。
$ mongo --host <hostname> --port <port>
其中,
创建数据库
MongoDB不需要预先创建数据库,只需在集合(collection)中插入文档(document),MongoDB会自动创建数据库。
创建集合
可以使用 db.createCollection()
方法创建集合。
> db.createCollection("students")
{ "ok" : 1 }
插入文档
使用 db.<collection>.insert()
方法插入文档。
> db.students.insert({name: "Tom", age: 18})
WriteResult({ "nInserted" : 1 })
查找文档
使用 db.<collection>.find()
方法查找文档。
> db.students.find({name: "Tom"})
{ "_id" : ObjectId("5a0342ec9ee4291308c095cc"), "name" : "Tom", "age" : 18 }
更新文档
使用 db.<collection>.update()
方法更新文档。
> db.students.update({name: "Tom"}, {$set: {age: 20}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
删除文档
使用 db.<collection>.remove()
方法删除文档。
> db.students.remove({name: "Tom"})
WriteResult({ "nRemoved" : 1 })
进阶应用
索引
使用索引可以大大提高查询效率。
创建索引:
> db.students.createIndex({name: 1})
查询时使用索引:
> db.students.find({name: "Tom"}).explain()
使用 explain()
方法可以查看查询的详细信息,包括使用的索引、扫描文档数等。
聚合
使用聚合可以对文档进行复杂的统计和计算。
计算每个人的平均年龄:
> db.students.aggregate([
... {$group: {_id: null, avgAge: {$avg: "$age"}}}
... ])
以上操作将返回一个文档,其中包含所有文档的平均年龄。
示例
读取文本文件
可以使用 mongoimport
将文本文件导入MongoDB。
假设有一个文件 data.txt,包含以下数据:
Tom,18
Jerry,19
Mike,20
可以使用以下命令将数据导入MongoDB:
$ mongoimport --db test --collection students --type csv --headerline data.txt
其中,test
是数据库名,students
是集合名,csv
表示文件类型,headerline
表示文件第一行为列名。
图片存储
MongoDB可以存储二进制数据,如图片和视频等。
以下是一个将图片存储到MongoDB的示例:
from pymongo import MongoClient
client = MongoClient()
db = client.test
fs = db.fs
with open("picture.png", "rb") as f:
file_content = f.read()
fs.insert_one({
"filename": "picture.png",
"content": file_content,
"upload_date": datetime.datetime.utcnow()
})
以上代码将图片读入内存后通过 insert_one()
方法存储到MongoDB中。
总结
本文介绍了MongoDB的基本操作和进阶应用,包括连接MongoDB、创建数据库和集合、插入、查找、更新和删除数据、索引和聚合等内容。通过示例演示了一些实际应用场景,希望能对读者使用MongoDB有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MongoDB使用小结 一些常用操作分享 - Python技术站