[模块记录]pymongo使用函数相关

本文介绍如何利用Python的pymongo模块连接并操作MongoDB数据库,包括连接数据库、查询记录、插入更新数据等常见操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0. 何为pymongo

pymongo是操作MongoDB的python模块

1、安装pymongo

# easy_install pymongo

2、连接mongodb

>>> import pymongo
>>> conn = pymongo.MongoClient(self, host=None, port=None, document_class=<class 'dict'>, tz_aware=None, connect=None, **kwargs)
    #返回一个 MongoClient 对象

3、获取数据库列表

>>> conn.database_names()
[u'test1', u'test2', u'admin', u'local']

4、连接数据库

>>> db1 = conn.get_database("db_name")
>>> db2 = conn["db_name"]
    #返回一个数据库对象

5、权限验证

>>> db.authenticate('username', 'password')
True

6、获取聚集列表 (聚集的概念类似于关系型数据库中的表)

>>> db.collection_names()
[u'account', u'role', u'item', u'online']

7、连接聚集

>>> account = db.get_collection("col_name")
   #返回一个聚集对象

8、查看聚集的一条记录

>>> account.find_one()

9、查看聚集的所有key (类似于关系型数据库中的字段)

>>> account.find_one().keys()

10、查看聚集的所有记录

>>> for i in account.find():
... print i

11、查看记录总数

>>> account.find().count()

12、根据条件查询多条记录

>>> for i in account.find({"name": "xxx"}):
... print i

13、对查询结果进行排序 (默认升序ASCENDING)

>>> account.find().sort("name", pymongo.ASCENDING)
>>> account.find().sort([("name", pymongo.ASCENDING), ("active_time", pymongo.DESCENDING)])

14、新增记录

>>> account.insert({"name": "mike", "active_time": "20130408"})

15、更新记录

>>> account.update({"name": "mike"}, {"$set": {"active_time": "20130408120000"}})
#注:如果数据中没有键-值"name": "mike", 会新增"active_time": "20130408120000"

16、删除记录 (不带条件表示全部删除)

>>> account.remove({"name": "mike"})

17. pycharm模糊不清匹配查询

方法1.
import re
{'xxx':re.compile('xxx')}

方法2. 
{'xxx':{'$regex':'xxx'}

18.and / or

account.find({ $or: [ { title: {$regex: 'test'} }, { intro: {$regex: 'test'} } ] })

### 如何将大语言模型生成的JSON数据存储到MongoDB中使用PyMongo 要将大语言模型生成的JSON数据存储到MongoDB中,可以通过PyMongo库完成这一过程。以下是具体的方法: #### 1. PyMongo安装与初始化 在开始之前,需要确保已经安装了PyMongo库[^1]。如果尚未安装,可以运行以下命令进行安装: ```bash pip install pymongo ``` 接着,在Python脚本中导入`pymongo`模块,并创建一个客户端实例用于连接MongoDB服务器: ```python from pymongo import MongoClient # 创建MongoDB客户端,默认连接本地主机上的MongoDB实例 client = MongoClient('mongodb://localhost:27017/') ``` #### 2. 数据库与集合的选择 一旦建立了客户端连接,就可以指定目标数据库以及其中的目标集合(类似于关系型数据库中的表)。如果没有找到对应的数据库或集合,则会在首次插入数据时自动创建它们。 假设我们要在一个名为`llm_data`的数据库下的`models_output`集合中保存数据: ```python db = client['llm_data'] collection = db['models_output'] ``` #### 3. 插入JSON数据 对于单条记录,可以直接调用`insert_one()`方法;如果是批量处理多条JSON对象组成的列表,则应使用`insert_many()`函数[^4]。 下面展示了一个简单的例子,演示如何把来自大语言模型的一个JSON响应存入MongoDB: ```python json_document = { 'model_name': 'gpt-3', 'prompt_text': 'Explain the concept of gravity.', 'response_text': 'Gravity is a force by which...', 'timestamp': '2023-10-05T14:48:00Z' } result = collection.insert_one(json_document) print(f'Inserted document ID: {result.inserted_id}') ``` 当有大量数据待写入时,推荐采用如下方式提高效率: ```python bulk_documents = [ {'model_name': 'bert-base', 'input_sentence': 'The cat sat on...', 'output_vector': [0.1, -0.2, ...]}, {'model_name': 'roberta-large', 'input_sentence': 'A man walks into...', 'output_vector': [-0.3, 0.4, ...]} ] results = collection.insert_many(bulk_documents) print(f'Inserted multiple documents with IDs: {results.inserted_ids}') ``` #### 4. 验证存储的内容 为了确认数据已被成功录入至预期位置,可通过查询操作验证结果。例如列举当前集合内的所有文档名目或者检索特定条件匹配项。 ```python all_collections = db.list_collection_names() for col in all_collections: print(col) specific_record = collection.find_one({'model_name': 'gpt-3'}) if specific_record: print(specific_record) else: print("No matching record found.") ``` 以上步骤涵盖了从准备环境直到实际应用层面的知识点介绍[^1]^。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值