mongodb update 数组 操作
前一篇文章说到了mongodb update 的字符操作,下面说一下mongodb update的数组操作,用的版本是mongodb2.6.3。 一,$美元符号,在update中,可理解为数组下标 例1 db.students.insert( //插入测试数据 [ {"_id" :6, "grades" : [ 80, 85, 90 ],"score":[10,4
前一篇文章说到了mongodb update 的字符操作,下面说一下mongodb update的数组操作,用的版本是mongodb2.6.3。
一,$美元符号,在update中,可理解为数组下标
例1
db.students.insert( //插入测试数据 [ {"_id" :6, "grades" : [ 80, 85, 90 ],"score":[10,40,54]}, {"_id" :7, "grades" : [ 88, 90, 92 ],"score":[100,30,51]} ] ); //把满足score大于90的grades,数组的第一个元素设置成88 db.students.update( { score: {$gt:90} }, { $set: { "grades.$" : 88 } } , { multi:true } );
相同功能php代码:
$where = array("score"=>array('$gt'=>70)); $param = array('$set'=>array('grades.$'=>"303")); $ismore = array("multiple" => true); $collection->update($where,$param,$ismore);
例2
db.test2.insert( { "content" : "this is a blog post.", "comments" : [ { "author" : "Mike", "comment" : "I think that blah blah blah...", }, { "author" : "John", "comment" : "I disagree." } ] } ); //查找名为Mike的记录,并且该人的名字改成tank db.test2.update( { "comments.author": "Mike"}, { $set: { "comments.$.author" : "tank" } } );
相同功能php代码:
$where = array("comments.author"=>"John"); $param = array('$set'=>array('comments.$.author'=>"tank")); $ismore = array("multiple" => true); $collection->update($where,$param,$ismore);
二,$addToSet 如果数组中没有该数据,向数组中添加数据,如果该数组中有相同数组,不添加
db.test3.insert( {"_id" :6, "grades" : [ "aaa", "bbb", "ccc" ]} ); db.test3.update( { _id: 6 }, { $addToSet: { grades: "ddd" } });
相同功能php代码:
$where = array("_id"=>6); $param = array('$addToSet'=>array('grades'=>"eee")); $collection->update($where,$param);
三,$pop删除数组数据
db.test3.update( { _id: 6 }, { $pop: { grades: -1 } }); //从头删除 db.test3.update( { _id: 6 }, { $pop: { grades: 1 } }); //从尾删除
相同功能php代码:
$where = array("_id"=>6); $param = array('$pop'=>array('grades'=>-1)); $collection->update($where,$param);
四,$pull和$pullAll删除指定数据
1,$pull
> db.test3.find(); { "_id" : 6, "grades" : [ "ccc", "ddd" ] } { "_id" : 7, "grades" : [ "aaa", "bbb", "ccc" ] } { "_id" : 8, "grades" : [ "aaa", "bbb", "ccc", "ddd", "eee" ] } > db.test3.update( { grades: "aaa" }, { $pull: { grades: "aaa" } }, //支持这种查找或匹配 $pull: { votes: { $gte: 6 } } { multi: true } ); WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 })
相同功能php代码:
$where = array("grades"=>"bbb"); $param = array('$pull'=>array('grades'=>"bbb")); $ismore = array("multiple" => true); $collection->update($where,$param,$ismore);
2,$pullAll
db.students.update( { _id: {$gt:1} }, { $pullAll: { "grades": [90,92] } } //只支持数组 );
相同功能php代码:
$where = array("grades"=>"ddd"); $param = array('$pullAll'=>array('grades'=>array("ddd","eee"))); $ismore = array("multiple" => true); $collection->update($where,$param,$ismore);
五,$push,$each,$sort,$slice,$position
1,各元素解释
$push 向数组中添加元素
$each 循环数据
$sort 对数组进行排序
$slice 对整个collection表进行数据裁减,用的时候一定要当心
$position 插入数据的位置。
2,实例
db.test4.insert( { "_id" : 5, "quizzes" : [ { wk: 1, "score" : 10 }, { wk: 2, "score" : 8 }, { wk: 3, "score" : 5 }, { wk: 4, "score" : 6 } ] } ); db.test4.update( { _id: 5 }, { $push: { quizzes: { $each: [ { wk: 5, score: 8 }, { wk: 6, score: 7 }, { wk: 7, score: 6 } ], $sort: { score: -1 }, $slice: 3, $position:2 } } } );
相同功能php代码:
$where = array("_id"=>5); $param = array('$push'=>array('quizzes'=>array('$each'=>array(array("wk"=>9,"score"=>10),array("wk"=>20,"score"=>11)), '$sort'=>array("score"=>-1), '$position'=>2, '$slice'=>3 //用$slice一定要小心,在这里会把整表数据裁减成3条 ) ) ); $collection->update($where,$param);



핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











여러 번의 사전 릴리스 이후 KDE 플라즈마 개발 팀은 2월 28일 처음으로 Qt6 프레임워크를 사용하는 Linux 및 BSD 시스템용 데스크탑 환경 버전 6.0을 공개했습니다. KDE Plasma 6.1에는 이제 여러 가지 새로운 기능이 포함되어 있습니다.

Fitbit Ace LTE는 지난 5월 공식 출시되었지만 현재는 미국에서만 사용할 수 있습니다. 스마트워치는 특히 어린이를 대상으로 하며, 보다 활동적인 라이프스타일을 통해 게임에 대한 보상을 받을 수 있고, 부모는 항상 자녀의 활동을 모니터링할 수 있습니다.

목차 Astar Dapp 스테이킹 원리 스테이킹 수익 잠재적 에어드랍 프로젝트 해체: AlgemNeurolancheHealThreeAstar Degens DAOVeryLongSwap 스테이킹 전략 및 운영 "AstarDapp 스테이킹"이 올해 초 V3 버전으로 업그레이드되었으며 스테이킹 수익에 많은 조정이 이루어졌습니다. 규칙. 현재 첫 번째 스테이킹 주기는 종료되었으며 두 번째 스테이킹 주기의 "투표" 하위 주기가 막 시작되었습니다. '추가 보상' 혜택을 받으려면 이 중요한 단계(6월 26일까지 지속 예정, 5일 미만 남았음)를 파악해야 합니다. 아스타 스테이킹 수익을 자세하게 분석해보겠습니다.

삼성전자는 One UI 6 Watch 베타 프로그램을 통해 갤럭시 워치 사용자들에게 새로운 건강 및 수면 추적 기능을 경험할 수 있는 기회를 제공하고 있습니다. 이 기능은 처음에는 Galaxy Watch6(디스플레이 밝기 테스트를 망쳤습니다) 및 Watch6 Classi에서 사용할 수 있었습니다.

이 기사는 데비안 시스템에서 MongoDB를 구성하여 자동 확장을 달성하는 방법을 소개합니다. 주요 단계에는 MongoDB 복제 세트 및 디스크 공간 모니터링 설정이 포함됩니다. 1. MongoDB 설치 먼저 MongoDB가 데비안 시스템에 설치되어 있는지 확인하십시오. 다음 명령을 사용하여 설치하십시오. sudoaptupdatesudoaptinstall-imongb-org 2. MongoDB Replica 세트 MongoDB Replica 세트 구성은 자동 용량 확장을 달성하기위한 기초 인 고 가용성 및 데이터 중복성을 보장합니다. MongoDB 서비스 시작 : sudosystemctlstartMongodsudosys

이 기사는 데비안 시스템에서 고도로 사용 가능한 MongoDB 데이터베이스를 구축하는 방법에 대해 설명합니다. 우리는 데이터 보안 및 서비스가 계속 운영되도록하는 여러 가지 방법을 모색 할 것입니다. 주요 전략 : ReplicaSet : ReplicaSet : 복제품을 사용하여 데이터 중복성 및 자동 장애 조치를 달성합니다. 마스터 노드가 실패하면 복제 세트는 서비스의 지속적인 가용성을 보장하기 위해 새 마스터 노드를 자동으로 선택합니다. 데이터 백업 및 복구 : MongoDump 명령을 정기적으로 사용하여 데이터베이스를 백업하고 데이터 손실의 위험을 처리하기 위해 효과적인 복구 전략을 공식화합니다. 모니터링 및 경보 : 모니터링 도구 (예 : Prometheus, Grafana) 배포 MongoDB의 실행 상태를 실시간으로 모니터링하고

해시 값으로 저장되기 때문에 MongoDB 비밀번호를 Navicat을 통해 직접 보는 것은 불가능합니다. 분실 된 비밀번호 검색 방법 : 1. 비밀번호 재설정; 2. 구성 파일 확인 (해시 값이 포함될 수 있음); 3. 코드를 점검하십시오 (암호 하드 코드 메일).

Pinetwork는 혁신적인 모바일 뱅킹 플랫폼 인 Pibank를 출시하려고합니다! Pinetwork는 오늘 Pibank라고 불리는 Elmahrosa (Face) Pimisrbank에 대한 주요 업데이트를 발표했습니다. Pibank는 Pinetwork Cryptocurrency 기능을 완벽하게 통합하여 화폐 통화 및 암호 화폐의 원자 교환을 실현합니다 (US Dollar, Indones rupiah, indensian rupiah and with rupiah and and indensian rupiah and rupiah and and Indones rupiah and rupiahh and rupiah and rupiah and rupiah and rupiah and rupiah and rupiah and rupiah cherrenciance) ). Pibank의 매력은 무엇입니까? 알아 보자! Pibank의 주요 기능 : 은행 계좌 및 암호 화폐 자산의 원 스톱 관리. 실시간 거래를 지원하고 생물학을 채택하십시오
