崔敏 發表於 2024-6-14 10:13:07

Mongodb使用$pop删除数组中元素的操作指南

<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li><a href="#_label0">定义</a></li><li><a href="#_label1">行为</a></li><li><a href="#_label2">应用</a></li><ul class="second_class_ul"><li><a href="#_lab2_2_0">删除数组中的第一个元素</a></li><li><a href="#_lab2_2_1">删除数组当中的最后一个元素</a></li></ul></ul></div><p class="maodian"><a name="_label0"></a></p><h2>定义</h2>
<p>$pop操作符删除数组当中的第一个元素或最后一个元素。向指定数组字段传入参数-1,表示删除第一个元素。而向指定数组字段传入参数1,表示删除最后一个元素。</p>
<p>按照下面的形式,使用$pop操作符</p>
<div class="jb51code"><pre class="brush:sql;">{$pop: {&lt;field&gt;: -1|1, ...}}</pre></div>
<p>当删除嵌套文档或数组中数组元素时,使用点操作符。</p>
<p class="maodian"><a name="_label1"></a></p><h2>行为</h2>
<ul><li>自mongodb5.0开始,UPDATE操作按照字段名称的字典顺序更新字段。当字段中包含数字时,按照数字顺序依次更新字段。当然,对一个文档的多个字段操作,是原子性的。</li><li>mongodb 5.0版本以后,向$pop传入空表达式({ })时,mongodb不再抛出错误。空表达式不会修改字段值 ,也不会在oplog中,添加新的操作记录。</li><li>针对非数组字段使用$pop时,数据更新操作会报错。</li><li>当使用$pop操作删除数组中的最后一个元素时,数组并不会被删除,而是保留一个空数组。</li></ul>
<p class="maodian"><a name="_label2"></a></p><h2>应用</h2>
<p class="maodian"><a name="_lab2_2_0"></a></p><h3>删除数组中的第一个元素</h3>
<p>创建students集合</p>
<div class="jb51code"><pre class="brush:java;">db.students.insertOne({_id: 1, scores:})</pre></div>
<p>构建数据更新语句,删除字段scores中的第一个元素8</p>
<div class="jb51code"><pre class="brush:java;">db.students.updateOne({_id: 1}, {$pop: {scores: -1}})</pre></div>
<p>查询更新结果</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202406/2024614101141892.png" /></p>
<p class="maodian"><a name="_lab2_2_1"></a></p><h3>删除数组当中的最后一个元素</h3>
<p>向集合中插入数据。其中scores是数组字段,包含两个元素。</p>
<div class="jb51code"><pre class="brush:java;">db.students.insert({_id: 10, scores:})</pre></div>
<p>构建查询语句,删除scores数组字段的最后一个元素10</p>
<div class="jb51code"><pre class="brush:java;">db.students.updateOne({_id: 10}, {$pop: {scores: 1}})</pre></div>
<p>查询数据更新结果</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202406/2024614101141893.png" /></p>
頁: [1]
查看完整版本: Mongodb使用$pop删除数组中元素的操作指南