任大宝儿 發表於 2019-9-10 21:34:00

Python操作MongoDB文档数据库

<h4><strong>1.Pymongo 安装</strong></h4>
<pre class="hljs sql"><code>安装pymongo:

pip <span class="hljs-keyword">install pymongo</span></code></pre>
<ul>
<li>PyMongo是驱动程序,使python程序能够使用Mongodb数据库,使用python编写而成;</li>
</ul>
<h4><strong>2.Pymongo 方法</strong></h4>
<ul>
<li><code>insert_one()</code>:插入一条记录;</li>
<li><code>insert()</code>:插入多条记录;</li>
<li><code>find_one()</code>:查询一条记录,不带任何参数返回第一条记录,带参数则按条件查找返回;</li>
<li><code>find()</code>:查询多条记录,不带参数返回所有记录,带参数按条件查找返回;</li>
<li><code>count()</code>:查看记录总数;</li>
<li><code>create_index()</code>:创建索引;</li>
<li><code>update_one()</code>:更新匹配到的第一条数据;</li>
<li><code>update()</code>:更新匹配到的所有数据;</li>
<li><code>remove()</code>:删除记录,不带参表示删除全部记录,带参则表示按条件删除;</li>
<li><code>delete_one()</code>:删除单条记录;</li>
<li><code>delete_many()</code>:删除多条记录;</li>
</ul>
<h4><strong>3.Pymongo 中的操作</strong></h4>
<ul>
<li>查看数据库</li>
</ul>
<pre class="hljs lisp"><code>from pymongo import MongoClient

connect = MongoClient(<span class="hljs-name">host='localhost', port=27017, username=<span class="hljs-string">"root", password=<span class="hljs-string">"123456")
connect = MongoClient('mongodb<span class="hljs-symbol">://localhost:<span class="hljs-number">27017/', username=<span class="hljs-string">"root", password=<span class="hljs-string">"123456")

print(<span class="hljs-name">connect.list_database_names())</span></span></span></span></span></span></span></span></code></pre>
<ul>
<li>获取数据库实例</li>
</ul>
<pre class="hljs ini"><code><span class="hljs-attr">test_db&nbsp;= connect[<span class="hljs-string">'test']</span></span></code></pre>
<ul>
<li>获取collection实例</li>
</ul>
<pre class="hljs ini"><code><span class="hljs-attr">collection&nbsp;= test_db[<span class="hljs-string">'students']</span></span></code></pre>
<ul>
<li>插入一行document, 查询一行document,取出一行document的值</li>
</ul>
<pre class="hljs coffeescript"><code><span class="hljs-keyword">from pymongo <span class="hljs-keyword">import MongoClient
<span class="hljs-keyword">from datetime <span class="hljs-keyword">import datetime

connect = MongoClient(host=<span class="hljs-string">'localhost', port=<span class="hljs-number">27017, username=<span class="hljs-string">"root", password=<span class="hljs-string">"123456",)
<span class="hljs-comment"># 获取db
test_db = connect[<span class="hljs-string">'test']
<span class="hljs-comment"># 获取collection
collection = test_db[<span class="hljs-string">'students']
<span class="hljs-comment"># 构建document
<span class="hljs-built_in">document = {<span class="hljs-string">"author": <span class="hljs-string">"Mike",<span class="hljs-string">"text": <span class="hljs-string">"My first blog post!", <span class="hljs-string">"tags": [<span class="hljs-string">"mongodb", <span class="hljs-string">"python", <span class="hljs-string">"pymongo"], <span class="hljs-string">"date": datetime.now()}
<span class="hljs-comment"># 插入document
one_insert = collection.insert_one(<span class="hljs-built_in">document=<span class="hljs-built_in">document)
<span class="hljs-built_in">print(one_insert.inserted_id)

<span class="hljs-comment"># 通过条件过滤出一条document
one_result = collection.find_one({<span class="hljs-string">"author": <span class="hljs-string">"Mike"})
<span class="hljs-comment"># 解析document字段
<span class="hljs-built_in">print(one_result, type(one_result))
<span class="hljs-built_in">print(one_result[<span class="hljs-string">'_id'])
<span class="hljs-built_in">print(one_result[<span class="hljs-string">'author'])

注意:如果需要通过id查询一行<span class="hljs-built_in">document,需要将id包装为ObjectId类的实例对象
<span class="hljs-keyword">from bson.objectid <span class="hljs-keyword">import ObjectId
collection.find_one({<span class="hljs-string">'_id': ObjectId(<span class="hljs-string">'5c2b18dedea5818bbd73b94c')})</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></pre>
<ul>
<li>插入多行documents, 查询多行document, 查看collections有多少行document</li>
</ul>
<pre class="hljs coffeescript"><code><span class="hljs-keyword">from pymongo <span class="hljs-keyword">import MongoClient
<span class="hljs-keyword">from datetime <span class="hljs-keyword">import datetime
connect = MongoClient(host=<span class="hljs-string">'localhost', port=<span class="hljs-number">27017, username=<span class="hljs-string">"root", password=<span class="hljs-string">"123456",)

<span class="hljs-comment"># 获取db
test_db = connect[<span class="hljs-string">'test']

<span class="hljs-comment"># 获取collection
collection = test_db[<span class="hljs-string">'students']
documents = [{<span class="hljs-string">"author": <span class="hljs-string">"Mike",<span class="hljs-string">"text": <span class="hljs-string">"Another post!",<span class="hljs-string">"tags": [<span class="hljs-string">"bulk", <span class="hljs-string">"insert"], <span class="hljs-string">"date": datetime(<span class="hljs-number">2009, <span class="hljs-number">11, <span class="hljs-number">12, <span class="hljs-number">11, <span class="hljs-number">14)},
{<span class="hljs-string">"author": <span class="hljs-string">"Eliot", <span class="hljs-string">"title": <span class="hljs-string">"MongoDB is fun", <span class="hljs-string">"text": <span class="hljs-string">"and pretty easy too!", <span class="hljs-string">"date": datetime(<span class="hljs-number">2009, <span class="hljs-number">11, <span class="hljs-number">10, <span class="hljs-number">10, <span class="hljs-number">45)}]
collection.insert_many(documents=documents)

<span class="hljs-comment"># 通过条件过滤出多条document
documents = collection.find({<span class="hljs-string">"author": <span class="hljs-string">"Mike"})

<span class="hljs-comment"># 解析document字段
<span class="hljs-built_in">print(documents, type(documents))
<span class="hljs-built_in">print(<span class="hljs-string">'*'*<span class="hljs-number">300)
<span class="hljs-keyword">for <span class="hljs-built_in">document <span class="hljs-keyword">in documents:
    <span class="hljs-built_in">print(<span class="hljs-built_in">document)
<span class="hljs-built_in">print(<span class="hljs-string">'*'*<span class="hljs-number">300)
result = collection.count_documents({<span class="hljs-string">'author': <span class="hljs-string">'Mike'})
<span class="hljs-built_in">print(result)</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></pre>
<ul>
<li>范围比较查询</li>
</ul>
<pre class="hljs coffeescript"><code><span class="hljs-keyword">from pymongo <span class="hljs-keyword">import MongoClient
<span class="hljs-keyword">from datetime <span class="hljs-keyword">import datetime

connect = MongoClient(host=<span class="hljs-string">'localhost', port=<span class="hljs-number">27017, username=<span class="hljs-string">"root", password=<span class="hljs-string">"123456",)

<span class="hljs-comment"># 获取db
test_db = connect[<span class="hljs-string">'test']

<span class="hljs-comment"># 获取collection
collection = test_db[<span class="hljs-string">'students']

<span class="hljs-comment"># 通过条件过滤时间小于datetime(2019, 1,1,15,40,3) 的document
documents = collection.find({<span class="hljs-string">"date": {<span class="hljs-string">"$lt": datetime(<span class="hljs-number">2019, <span class="hljs-number">1,<span class="hljs-number">1,<span class="hljs-number">15,<span class="hljs-number">40,<span class="hljs-number">3)}}).sort(<span class="hljs-string">'date')

<span class="hljs-comment"># 解析document字段
<span class="hljs-built_in">print(documents, type(documents))
<span class="hljs-built_in">print(<span class="hljs-string">'*'*<span class="hljs-number">300)
<span class="hljs-keyword">for <span class="hljs-built_in">document <span class="hljs-keyword">in documents:
    <span class="hljs-built_in">print(<span class="hljs-built_in">document)</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></pre>
<ul>
<li>创建索引</li>
</ul>
<pre class="hljs python"><code><span class="hljs-keyword">from pymongo <span class="hljs-keyword">import MongoClient
<span class="hljs-keyword">import pymongo
<span class="hljs-keyword">from datetime <span class="hljs-keyword">import datetime

connect = MongoClient(host=<span class="hljs-string">'localhost', port=<span class="hljs-number">27017, username=<span class="hljs-string">"root", password=<span class="hljs-string">"123456",)
<span class="hljs-comment"># 获取db
test_db = connect[<span class="hljs-string">'test']
<span class="hljs-comment"># 获取collection
collection = test_db[<span class="hljs-string">'students']
<span class="hljs-comment"># 创建字段索引
collection.create_index(keys=[(<span class="hljs-string">"name", pymongo.DESCENDING)], unique=<span class="hljs-keyword">True)
<span class="hljs-comment"># 查询索引
result = sorted(list(collection.index_information()))
print(result)</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></pre>
<ul>
<li>document修改</li>
</ul>
<pre class="hljs perl"><code>from pymongo import MongoClient
<span class="hljs-keyword">connect = MongoClient(host=<span class="hljs-string">'localhost', port=<span class="hljs-number">27017, username=<span class="hljs-string">"root", password=<span class="hljs-string">"123456",)

<span class="hljs-comment"># 获取db
test_db = <span class="hljs-keyword">connect[<span class="hljs-string">'test']

<span class="hljs-comment"># 获取collection
collection = test_db[<span class="hljs-string">'students']
result = collection.update({<span class="hljs-string">'name': <span class="hljs-string">'robby'}, {<span class="hljs-string">'$set': {<span class="hljs-string">"name": <span class="hljs-string">"Petter"}})
<span class="hljs-keyword">print(result)
注意:还有update_many()方法</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></pre>
<ul>
<li>document删除</li>
</ul>
<pre class="hljs perl"><code>from pymongo import MongoClient
<span class="hljs-keyword">connect = MongoClient(host=<span class="hljs-string">'localhost', port=<span class="hljs-number">27017, username=<span class="hljs-string">"root", password=<span class="hljs-string">"123456",)

<span class="hljs-comment"># 获取db
test_db = <span class="hljs-keyword">connect[<span class="hljs-string">'test']

<span class="hljs-comment"># 获取collection
collection = test_db[<span class="hljs-string">'students']
result = collection.delete_one({<span class="hljs-string">'name': <span class="hljs-string">'Petter'})
<span class="hljs-keyword">print(result.deleted_count)
注意:还有delete_many()方法</span></span></span></span></span></span></span></span></span></span></span></span></span></code></pre>
<h4><strong>4.MongoDB ODM 详解</strong></h4>
<ul>
<li>MongoDB ODM 与 Django ORM使用方法类似;</li>
<li>MongoEngine是一个对象文档映射器,用Python编写,用于处理MongoDB;</li>
<li>MongoEngine提供的抽象是基于类的,创建的所有模型都是类;</li>
</ul>
<pre class="hljs sql"><code><span class="hljs-comment"># 安装mongoengine
pip <span class="hljs-keyword">install mongoengine</span></span></code></pre>
<ul>
<li>mongoengine使用的字段类型</li>
</ul>
<pre class="hljs groovy"><code>BinaryField
BooleanField
ComplexDateTimeField
DateTimeField
DecimalField
DictField
DynamicField
EmailField
EmbeddedDocumentField
EmbeddedDocumentListField
FileField
FloatField
GenericEmbeddedDocumentField
GenericReferenceField
GenericLazyReferenceField
GeoPointField
ImageField
IntField
<span class="hljs-string">ListField:可以将自定义的文档类型嵌套
MapField
ObjectIdField
ReferenceField
LazyReferenceField
SequenceField
SortedListField
StringField
URLField
UUIDField
PointField
LineStringField
PolygonField
MultiPointField
MultiLineStringField
MultiPolygonField</span></code></pre>
<h4><strong>5.使用mongoengine创建数据库连接</strong></h4>
<pre class="hljs lisp"><code>from mongoengine import connect

conn = connect(<span class="hljs-name">db='test', host='localhost', port=27017, username='root', password='<span class="hljs-number">123456', authentication_source='admin')
print(<span class="hljs-name">conn)</span></span></span></code></pre>
<p><code>connect(db = None,alias ='default',** kwargs );</code></p>
<ul>
<li><code>db</code>:要使用的数据库的名称,以便与connect兼容;</li>
<li><code>host</code>&nbsp;:要连接的mongod实例的主机名;</li>
<li><code>port</code>&nbsp;:运行mongod实例的端口;</li>
<li><code>username</code>:用于进行身份验证的用户名;</li>
<li><code>password</code>:用于进行身份验证的密码;</li>
<li><code>authentication_source</code>&nbsp;:要进行身份验证的数据库;</li>
</ul>
<p><strong>构建文档模型,插入数据</strong></p>
<pre class="hljs haskell"><code><span class="hljs-title">from mongoengine <span class="hljs-keyword">import connect, \
                        <span class="hljs-type">Document, \
                        <span class="hljs-type">StringField,\
                        <span class="hljs-type">IntField, \
                        <span class="hljs-type">FloatField,\
                        <span class="hljs-type">ListField, \
                        <span class="hljs-type">EmbeddedDocumentField,\
                        <span class="hljs-type">DateTimeField, \
                        <span class="hljs-type">EmbeddedDocument
<span class="hljs-title">from datetime <span class="hljs-keyword">import datetime

<span class="hljs-meta"># 嵌套文档
<span class="hljs-class"><span class="hljs-keyword">class <span class="hljs-type">Score(<span class="hljs-type">EmbeddedDocument):
    name = <span class="hljs-type">StringField(<span class="hljs-title">max_length=50, <span class="hljs-title">required=<span class="hljs-type">True)
    value = <span class="hljs-type">FloatField(<span class="hljs-title">required=<span class="hljs-type">True)

<span class="hljs-keyword">class <span class="hljs-type">Students(<span class="hljs-type">Document):
    choice =(('<span class="hljs-type">F', '<span class="hljs-title">female'),
               ('<span class="hljs-type">M', '<span class="hljs-title">male'),)
    name = <span class="hljs-type">StringField(<span class="hljs-title">max_length=100, <span class="hljs-title">required=<span class="hljs-type">True, <span class="hljs-title">unique=<span class="hljs-type">True)
    age = <span class="hljs-type">IntField(<span class="hljs-title">required=<span class="hljs-type">True)
    hobby = <span class="hljs-type">StringField(<span class="hljs-title">max_length=100, <span class="hljs-title">required=<span class="hljs-type">True, )
    gender = <span class="hljs-type">StringField(<span class="hljs-title">choices=<span class="hljs-title">choice, <span class="hljs-title">required=<span class="hljs-type">True)
    # 这里使用到了嵌套文档,这个列表中的每一个元素都是一个字典,因此使用嵌套类型的字段
    score = <span class="hljs-type">ListField(<span class="hljs-type">EmbeddedDocumentField(Score))
    time = <span class="hljs-type">DateTimeField(<span class="hljs-title">default=<span class="hljs-title">datetime.<span class="hljs-title">now())

if __name__ == '__main__':
    connect(<span class="hljs-title">db='<span class="hljs-title">test', <span class="hljs-title">host='<span class="hljs-title">localhost', <span class="hljs-title">port=27017, <span class="hljs-title">username='<span class="hljs-title">root', <span class="hljs-title">password='123456', <span class="hljs-title">authentication_source='<span class="hljs-title">admin')
    math_score = <span class="hljs-type">Score(<span class="hljs-title">name='<span class="hljs-title">math', <span class="hljs-title">value=94)
    chinese_score = <span class="hljs-type">Score(<span class="hljs-title">name='<span class="hljs-title">chinese', <span class="hljs-title">value=100)
    python_score = <span class="hljs-type">Score(<span class="hljs-title">name='<span class="hljs-title">python', <span class="hljs-title">value=99)

    for i in range(10):
      students = <span class="hljs-type">Students(<span class="hljs-title">name='<span class="hljs-title">robby{}'.<span class="hljs-title">format(<span class="hljs-title">i), age=int('{}'.<span class="hljs-title">format(<span class="hljs-title">i)), hobby='read', gender='<span class="hljs-type">M', score=)
      students.save()</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></pre>
<p><strong>查询数据</strong></p>
<pre class="hljs python"><code><span class="hljs-keyword">from mongoengine <span class="hljs-keyword">import connect, \
                        Document, \
                        StringField,\
                        IntField, \
                        FloatField,\
                        ListField, \
                        EmbeddedDocumentField,\
                        DateTimeField, \
                        EmbeddedDocument
<span class="hljs-keyword">from datetime <span class="hljs-keyword">import datetime

<span class="hljs-comment"># 嵌套文档
<span class="hljs-class"><span class="hljs-keyword">class <span class="hljs-title">Score<span class="hljs-params">(EmbeddedDocument):
    name = StringField(max_length=<span class="hljs-number">50, required=<span class="hljs-keyword">True)
    value = FloatField(required=<span class="hljs-keyword">True)

<span class="hljs-class"><span class="hljs-keyword">class <span class="hljs-title">Students<span class="hljs-params">(Document):
    choice =((<span class="hljs-string">'F', <span class="hljs-string">'female'),
               (<span class="hljs-string">'M', <span class="hljs-string">'male'),)

    name = StringField(max_length=<span class="hljs-number">100, required=<span class="hljs-keyword">True, unique=<span class="hljs-keyword">True)
    age = IntField(required=<span class="hljs-keyword">True)
    hobby = StringField(max_length=<span class="hljs-number">100, required=<span class="hljs-keyword">True, )
    gender = StringField(choices=choice, required=<span class="hljs-keyword">True)
    <span class="hljs-comment"># 这里使用到了嵌套文档,这个列表中的每一个元素都是一个字典,因此使用嵌套类型的字段
    score = ListField(EmbeddedDocumentField(Score))
    time = DateTimeField(default=datetime.now())

<span class="hljs-keyword">if __name__ == <span class="hljs-string">'__main__':
    connect(db=<span class="hljs-string">'test', host=<span class="hljs-string">'localhost', port=<span class="hljs-number">27017, username=<span class="hljs-string">'root', password=<span class="hljs-string">'123456', authentication_source=<span class="hljs-string">'admin')

    first_document = Students.objects.first()

    all_document = Students.objects.all()

    <span class="hljs-comment"># 如果只有一条,也可以使用get
    specific_document = Students.objects.filter(name=<span class="hljs-string">'robby3')

    print(first_document.name, first_document.age, first_document.time)

    <span class="hljs-keyword">for document <span class="hljs-keyword">in all_document:
      print(document.name)

    <span class="hljs-keyword">for document <span class="hljs-keyword">in specific_document:
      print(document.name, document.age)</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></pre>
<p><strong>修改、更新、删除数据</strong></p>
<pre class="hljs haskell"><code><span class="hljs-title">from mongoengine <span class="hljs-keyword">import connect, \
                        <span class="hljs-type">Document, \
                        <span class="hljs-type">StringField,\
                        <span class="hljs-type">IntField, \
                        <span class="hljs-type">FloatField,\
                        <span class="hljs-type">ListField, \
                        <span class="hljs-type">EmbeddedDocumentField,\
                        <span class="hljs-type">DateTimeField, \
                        <span class="hljs-type">EmbeddedDocument
<span class="hljs-title">from datetime <span class="hljs-keyword">import datetime

<span class="hljs-meta"># 嵌套文档
<span class="hljs-class"><span class="hljs-keyword">class <span class="hljs-type">Score(<span class="hljs-type">EmbeddedDocument):
    name = <span class="hljs-type">StringField(<span class="hljs-title">max_length=50, <span class="hljs-title">required=<span class="hljs-type">True)
    value = <span class="hljs-type">FloatField(<span class="hljs-title">required=<span class="hljs-type">True)

<span class="hljs-keyword">class <span class="hljs-type">Students(<span class="hljs-type">Document):
    choice =(('<span class="hljs-type">F', '<span class="hljs-title">female'),
               ('<span class="hljs-type">M', '<span class="hljs-title">male'),)

    name = <span class="hljs-type">StringField(<span class="hljs-title">max_length=100, <span class="hljs-title">required=<span class="hljs-type">True, <span class="hljs-title">unique=<span class="hljs-type">True)
    age = <span class="hljs-type">IntField(<span class="hljs-title">required=<span class="hljs-type">True)
    hobby = <span class="hljs-type">StringField(<span class="hljs-title">max_length=100, <span class="hljs-title">required=<span class="hljs-type">True, )
    gender = <span class="hljs-type">StringField(<span class="hljs-title">choices=<span class="hljs-title">choice, <span class="hljs-title">required=<span class="hljs-type">True)
    # 这里使用到了嵌套文档,这个列表中的每一个元素都是一个字典,因此使用嵌套类型的字段
    score = <span class="hljs-type">ListField(<span class="hljs-type">EmbeddedDocumentField(Score))
    time = <span class="hljs-type">DateTimeField(<span class="hljs-title">default=<span class="hljs-title">datetime.<span class="hljs-title">now())

if __name__ == '__main__':
    connect(<span class="hljs-title">db='<span class="hljs-title">test', <span class="hljs-title">host='<span class="hljs-title">localhost', <span class="hljs-title">port=27017, <span class="hljs-title">username='<span class="hljs-title">root', <span class="hljs-title">password='123456', <span class="hljs-title">authentication_source='<span class="hljs-title">admin')

    specific_document = <span class="hljs-type">Students.objects.filter(<span class="hljs-title">name='<span class="hljs-title">robby3')
    specific_document.update(<span class="hljs-title">set__age=100)
    specific_document.update_one(<span class="hljs-title">set__age=100)

    for document in specific_document:
      document.name = '<span class="hljs-type">ROBBY100'
      document.save()

    for document in specific_document:
      document.delete()</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></pre>
<ul>
<li><code>all()</code>:返回所有文档;</li>
<li><code>all_fields()</code>:包括所有字段;</li>
<li><code>as_pymongo()</code>:返回的不是Document实例 而是pymongo值;</li>
<li><code>average()</code>:平均值超过指定字段的值;</li>
<li><code>batch_size()</code>:限制单个批次中返回的文档数量;</li>
<li><code>clone()</code>:创建当前查询集的副本;</li>
<li><code>comment()</code>:在查询中添加注释;</li>
<li><code>count()</code>:计算查询中的选定元素;</li>
<li><code>create()</code>:创建新对象,返回保存的对象实例;</li>
<li><code>delete()</code>:删除查询匹配的文档;</li>
<li><code>distinct()</code>:返回给定字段的不同值列表;</li>
</ul>
<h4><strong>嵌入式文档查询的方法</strong></h4>
<ul>
<li><code>count()</code>:列表中嵌入文档的数量,列表的长度;</li>
<li><code>create()</code>:创建新的嵌入式文档并将其保存到数据库中;</li>
<li><code>delete()</code>:从数据库中删除嵌入的文档;</li>
<li><code>exclude(** kwargs )</code>:通过使用给定的关键字参数排除嵌入的文档来过滤列表;</li>
<li><code>first()</code>:返回列表中的第一个嵌入文档;</li>
<li><code>get()</code>:检索由给定关键字参数确定的嵌入文档;</li>
<li><code>save()</code>:保存祖先文档;</li>
<li><code>update()</code>:使用给定的替换值更新嵌入的文档;</li>
</ul><br><br>
来源:https://www.cnblogs.com/wefeng/p/11503102.html
頁: [1]
查看完整版本: Python操作MongoDB文档数据库