当前位置:   article > 正文

MongoDB-4.2.1 之安装和使用

MongoDB-4.2.1 之安装和使用

安装

下载安装包

我自己电脑是 Windows7 的老古董,所以就下载老版本的 MongoDB。

mongodb:

https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2012plus-4.2.1.zip

解压安装包到指定路径

我解压到的 C 盘

C:\mongodb-4.2.1

添加环境变量

创建数据库和日志目录

启动守护进程 

mongod --dbpath "C:\mongodb-4.2.1\data" --logpath "C:\mongodb-4.2.1\logs\mongo.log"

连接MongoDB数据库

mongo

下载 MongoDB Compass

compass:

https://downloads.mongodb.com/compass/mongodb-compass-1.25.0-win32-x64.zip

启动连接数据库

用户名密码登录

默认不需要用户名密码即可登录,但我们可以自己创建用户名密码以及指定对应的的权限。

  1. db.createUser(
  2. {
  3. user: "admin",
  4. pwd: "admin",
  5. roles: [ { role: "readWrite", db: "admin"} ]
  6. }
  7. )

然后就可以使用新的用户名密码在 Compass  进行登录了。

使用

数据库操作

创建数据库

  1. > use test
  2. switched to db test

集合操作

创建集合

  1. db.createCollection("orders")
  2. { ok: 1 }

操作文档

插入文档

db.orders.insertOne({ "username": "Tom", "product": "phone", "price": 1000 })

查询文档

  1. db.orders.find({username:"Tom"})
  2. { _id: ObjectId("665c333e567231295cf51a71"),
  3. username: 'Tom',
  4. product: 'phone',
  5. price: 1000 }

索引操作

创建索引

  1. db.orders.createIndex({ "username": 1 })
  2. { createdCollectionAutomatically: false,
  3. numIndexesBefore: 1,
  4. numIndexesAfter: 2,
  5. ok: 1 }

API接口

Python连接操作

  1. from pymongo import MongoClient
  2. # 创建MongoDB连接
  3. client = MongoClient('mongodb://admin:admin@localhost:27017')
  4. # 选择数据库和集合
  5. # db = client['test'] # 选择数据库
  6. # collection = db['orders'] # 选择集合
  7. class MongoDbHandler:
  8. def __init__(self):
  9. self.client = client
  10. self.db = client['test']
  11. self.collection = self.db['orders']
  12. def list_database_names(self):
  13. print(self.client.list_database_names())
  14. def find_data(self):
  15. # for document in self.collection.find({"username": "Looking"}):
  16. for document in self.collection.find().sort("username"):
  17. print(document)
  18. # {'_id': ObjectId('665c333e567231295cf51a71'), 'username': 'Tom', 'product': 'phone', 'price': 1000}
  19. # {'_id': ObjectId('665c33d6567231295cf51a72'), 'username': 'Looking', 'product': 'Book', 'price': 50}
  20. # {'_id': ObjectId('665c3c7cec9751b7de2b09d6'), 'username': 'John', 'product': 'Shoes', 'price': 500}
  21. # {'_id': ObjectId('665c3d90b7e847ae9f730c62'), 'username': 'Sandra', 'product': 'Shoes', 'price': 500}
  22. # {'_id': ObjectId('665c3d90b7e847ae9f730c63'), 'username': 'Jerry', 'product': 'Food', 'price': 500}
  23. def insert_one(self):
  24. data = {"username": "John", "product": "Shoes", "price": 500}
  25. res = self.collection.insert_one(data)
  26. print(res) # InsertOneResult(ObjectId('665c3c7cec9751b7de2b09d6'), acknowledged=True)
  27. def insert_many(self):
  28. datas = [
  29. {'username': 'Tom', 'product': 'phone', 'price': 1000},
  30. {'username': 'Looking', 'product': 'Book', 'price': 50},
  31. {'username': 'John', 'product': 'Shoes', 'price': 500},
  32. {'username': 'Sandra', 'product': 'Shoes', 'price': 500},
  33. {'username': 'Jerry', 'product': 'Food', 'price': 500},
  34. ]
  35. res = self.collection.insert_many(datas)
  36. print(res)
  37. # InsertManyResult([ObjectId('665c3d90b7e847ae9f730c62'), ObjectId('665c3d90b7e847ae9f730c63')], acknowledged=True)
  38. def update_data(self):
  39. query = {"username": "Tom"}
  40. new_values = {"$set": {"price": 12345}}
  41. res = self.collection.update_one(query, new_values) # update_one 只修改匹配到的第一个结果
  42. # res = self.collection.update_many(query, new_values) # update_many 用于修改所有匹配的结果
  43. print("matched:", res.matched_count)
  44. # matched: 1
  45. print("modified:", res.modified_count)
  46. # modified: 1
  47. def delete_data(self):
  48. query = {"username": "John"}
  49. res = self.collection.delete_one(query) # delete_one 只删除匹配到的第一个结果
  50. # res = self.collection.delete_many({}) # delete_many 删除所有匹配的文档,如果传入空查询对象,删除所有
  51. print("acknowledged:", res.acknowledged)
  52. # acknowledged: True
  53. print("deleted_count:", res.deleted_count)
  54. # deleted_count: 1
  55. def delete_collection(self):
  56. self.collection.drop()
  57. def create_collection(self):
  58. self.db.create_collection("test")
  59. if __name__ == '__main__':
  60. mongodb_handler = MongoDbHandler()
  61. # mongodb_handler.list_database_names()
  62. mongodb_handler.find_data()
  63. # mongodb_handler.insert_one()
  64. # mongodb_handler.insert_many()
  65. # mongodb_handler.update_data()
  66. # mongodb_handler.delete_data()
  67. # mongodb_handler.delete_collection()
  68. # mongodb_handler.create_collection()

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/668442
推荐阅读
相关标签
  

闽ICP备14008679号