MongoDB中文档增删查改怎样操作的呢?
Admin 2022-11-23 群英技术资讯 1537 次浏览
 这篇文章给大家分享的是“MongoDB中文档增删查改怎样操作的呢?”,对大家学习和理解有一定的参考价值和帮助,有这方面学习需要的朋友,接下来就跟随小编一起学习一下吧。
                
                                这篇文章给大家分享的是“MongoDB中文档增删查改怎样操作的呢?”,对大家学习和理解有一定的参考价值和帮助,有这方面学习需要的朋友,接下来就跟随小编一起学习一下吧。插入文档:insert() 方法
要插入数据到 MongoDB 集合,需要使用 MongoDB 的 insert() 或 save() 方法。
语法:
insert() 命令的基本语法如下:
>db.COLLECTION_NAME.insert(document)
例子:
 >db.mycol.insert({    _id: ObjectId(7df78ad8902c),    title: 'MongoDB Overview',     description: 'MongoDB is no sql database',    by: 'tutorials point',    url: 'http://www.aizhan.com',    tags: ['mongodb', 'database', 'NoSQL'],    likes: 100 })
 这里 mycol  是集合的名称,如前面的教程中创建。如果集合在数据库中不存在,那么MongoDB 将创建此集合,然后把它插入文档。
插入文档中,如果我们不指定_id参数,然后MongoDB 本文档分配一个独特的ObjectId。
_id 是12个字节的十六进制数,唯一一个集合中的每个文档。 12个字节被划分如下:
_id: ObjectId(4 bytes timestamp, 3 bytes machine id, 2 bytes process id, 3 bytes incrementer)
要插入单个查询的多个文档,可以传递一个数组 insert() 命令的文件。
示例:
 >db.post.insert([ {    title: 'MongoDB Overview',     description: 'MongoDB is no sql database',    by: 'tutorials point',    url: 'http://www.aizhan.com',    tags: ['mongodb', 'database', 'NoSQL'],    likes: 100 }, {    title: 'NoSQL Database',     description: 'NoSQL database doesn't have tables',    by: 'tutorials point',    url: 'http://www.aizhan.com',    tags: ['mongodb', 'database', 'NoSQL'],    likes: 20,     comments: [        {          user:'user1',          message: 'My first comment',          dateCreated: new Date(2013,11,10,2,35),          like: 0        }    ] } ])
 要插入文件,也可以使用  db.post.save(document)。 如果不指定_id在文档中,然后将其 save() 方法和 insert()方法工作一样。如果指定_id,它会替换整个数据文件,其中包含_id 指定save()方法。
 删除文档:remove() 方法
MongoDB的 remove() 方法用于从集合中删除文档。remove() 方法接受两个参数。第一个是删除criteria ,第二是justOne标志:
(1)deletion criteria :(可选)删除标准,根据文件将被删除。
(2)justOne : (可选)如果设置为true或1,然后只删除一个文件。
语法:
基本语法remove()方法如下
>db.COLLECTION_NAME.remove(DELLETION_CRITTERIA)
例子:
考虑以下数据mycol集合。
 { "_id" : ObjectId(5983548781331adf45ec5), "title":"MongoDB Overview"} { "_id" : ObjectId(5983548781331adf45ec6), "title":"NoSQL Overview"} { "_id" : ObjectId(5983548781331adf45ec7), "title":"Yiibai Overview"}
 下面的例子将删除所有的文件,其标题是 'MongoDB Overview'
 >db.mycol.remove({'title':'MongoDB Overview'}) >db.mycol.find() { "_id" : ObjectId(5983548781331adf45ec6), "title":"NoSQL Overview"} { "_id" : ObjectId(5983548781331adf45ec7), "title":"Yiibai Overview"} >
 删除只有一个。
如果有多个记录且要删除的只有第一条记录,那么设置remove()方法中justOne参数
>db.COLLECTION_NAME.remove(DELETION_CRITERIA,1)
删除所有文件:
如果不指定删除条件,然后MongoDB将从集合中删除整个文件。这相当于SQL的truncate命令。
>db.mycol.remove() >db.mycol.find() >
 查询文档:
 1.find() 方法
 要从MongoDB 查询集合数据,需要使用MongoDB 的 find() 方法。
语法:
基本的find()方法语法如下
>db.COLLECTION_NAME.find()
find() 方法将在非结构化的方式显示所有的文件。
2.pretty() 方法
结果显示在一个格式化的方式,可以使用 pretty() 方法.
语法:
>db.mycol.find().pretty()
例子:
 >db.mycol.find().pretty() {    "_id": ObjectId(7df78ad8902c),    "title": "MongoDB Overview",     "description": "MongoDB is no sql database",    "by": "tutorials point",    "url": "http://www.aizhan.com",    "tags": ["mongodb", "database", "NoSQL"],    "likes": "100" } >
 除了find() 方法外,还有一个 findOne() 法,返回一个文件。
RDBMS Where子句和MongoDB等同语句.
要查询文件的一些条件的基础上,可以使用下面的操作
| 操作 | 语法 | 例子 | RDBMS 等同 | 
|---|---|---|---|
| Equality | key | db.mycol.find({"by":"tutorials point"}).pretty() | where by = 'tutorials point' | 
| Less Than | { :{$lt: }} | db.mycol.find({"likes":{$lt:50}}).pretty() | where likes | 
| Less Than Equals | { :{$lte: }} | db.mycol.find({"likes":{$lte:50}}).pretty() | where likes | 
| Greater Than | { :{$gt: }} | db.mycol.find({"likes":{$gt:50}}).pretty() | where likes > 50 | 
| Greater Than Equals | { :{$gte: }} | db.mycol.find({"likes":{$gte:50}}).pretty() | where likes >= 50 | 
| Not Equals | { :{$ne: }} | db.mycol.find({"likes":{$ne:50}}).pretty() | where likes != 50 | 
 3.AND 在MongoDB中用法
语法:
在 find() 方法,如果通过多个键分离',',那么 MongoDB 处理 AND 条件。AND 基本语法如下所示:
 >db.mycol.find({key1:value1, key2:value2}).pretty()
  
例子
下面给出的例子将显示所有的教程,标题是“MongoDB Overview“
 >db.mycol.find({"by":"tutorials point","title": "MongoDB Overview"}).pretty() {    "_id": ObjectId(7df78ad8902c),    "title": "MongoDB Overview",     "description": "MongoDB is no sql database",    "by": "yiibai",    "url": "http://www.aizhan.com",    "tags": ["mongodb", "database", "NoSQL"],    "likes": "100" } >
 对于上面给出的例子相当于where子句 ' where by='yiibai' AND title='MongoDB Overview' , 可以通过任意数量的键值对在 find 子句。
4.MongoDB中OR
语法:
OR条件的基础上要查询文件,需要使用$or关键字。OR 基本语法如下所示:
 >db.mycol.find(  {    $or: [    {key1: value1}, {key2:value2}    ]  } ).pretty()
  
例子
下面给出的例子将显示所有的教程,由'yiibai' 所写或标题是“MongoDB Overview '
 >db.mycol.find({$or:[{"by":"yiibai"},{"title": "MongoDB Overview"}]}).pretty() {    "_id": ObjectId(7df78ad8902c),    "title": "MongoDB Overview",     "description": "MongoDB is no sql database",    "by": "yiibai",    "url": "http://www.aizhan.com",    "tags": ["mongodb", "database", "NoSQL"],    "likes": "100" } >
 5.AND 和 OR 一起使用
例子
下面给出的例子将显示有像的文件大于100,其标题是“MongoDB Overview'或者是'yiibai' 。等效于 SQL where子句 为
'where likes>10 AND (by = 'yiibai' OR title = 'MongoDB Overview')'
 >db.mycol.find("likes": {$gt:10}, $or: [{"by": "yiibai"}, {"title": "MongoDB Overview"}] }).pretty() {    "_id": ObjectId(7df78ad8902c),    "title": "MongoDB Overview",     "description": "MongoDB is no sql database",    "by": "yiibai",    "url": "http://www.aizhan.com",    "tags": ["mongodb", "database", "NoSQL"],    "likes": "100" } >
 更新文档
  MongoDB的 update() 和 save() 方法用于更新文档的集合。 update()方法更新现有的文档值,而替换现有的文档通过的文件中 save() 方法。
1.MongoDB Update() 方法
update()方法更新现有文档值。
语法:
update() 方法的基本语法如下
>db.COLLECTION_NAME.update(SELECTIOIN_CRITERIA, UPDATED_DATA)
例子
考虑以下数据mycol集合。
 { "_id" : ObjectId(5983548781331adf45ec5), "title":"MongoDB Overview"} { "_id" : ObjectId(5983548781331adf45ec6), "title":"NoSQL Overview"} { "_id" : ObjectId(5983548781331adf45ec7), "title":"Tutorials Point Overview"}
 下面的例子将设置新标题'MongoDB Overview'的文件,更新其标题是“New MongoDB Tutorial”
 >db.mycol.update({'title':'MongoDB Overview'},{$set:{'title':'New MongoDB Tutorial'}}) >db.mycol.find() { "_id" : ObjectId(5983548781331adf45ec5), "title":"New MongoDB Tutorial"} { "_id" : ObjectId(5983548781331adf45ec6), "title":"NoSQL Overview"} { "_id" : ObjectId(5983548781331adf45ec7), "title":"Yiibai Overview"} >
 MongoDB默认将只更新单一的文件,来更新多个你需要设置参数置'multi' 为true
 >db.mycol.update({'title':'MongoDB Overview'},{$set:{'title':'New MongoDB Tutorial'}},{multi:true})
 2.MongoDB Save() 方法
save() 方法替换现有的文档和通过新的文档 save() 方法
语法
MongoDB 的 save() 方法的基本语法如下:
 >db.COLLECTION_NAME.save({_id:ObjectId(),NEW_DATA})
  
例子
下面的例子将取代文件具有_id为 '5983548781331adf45ec7'
 >db.mycol.save(    {       "_id" : ObjectId(5983548781331adf45ec7), "title":"Yiibai New Topic", "by":"Yiibai"    } ) >db.mycol.find() { "_id" : ObjectId(5983548781331adf45ec5), "title":"Yiibai New Topic", "by":"Yiibai"} { "_id" : ObjectId(5983548781331adf45ec6), "title":"NoSQL Overview"} { "_id" : ObjectId(5983548781331adf45ec7), "title":"Yiibai Overview"} >
   
 
                
                                
                                免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要给大家介绍了关于MongoDB运行日志实现自动分割的方法,文中以一个MongoDB实例为例,写了一个脚本来实现自动分割MongoDB日志,有需要的朋友可以参考借鉴,下面来一起看看吧。
这篇文章给大家分享的是mongodb数据库中CURD怎么操作的内容,小编觉得挺实用的,因此分享给大家做个参考,更兴趣的朋友就跟随小编一起来学习吧。
这篇文章主要介绍了Centos 7下Mongodb开机无法自启动的解决方法,文中介绍的非常详细,对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
mongodb多表联查的方法:1、首先用from关联主从表名;2、用as查询结果名;3、用Aggregation进行多条件查询;4、查询结果赋给results;5、用print()输出查询结果。
MongoDB中更新文档的update()方法:1、命令为db.collection.update( criteria, objNew, upsert, multi );2、参数criteria用于指定一个查询,查询选择将要更新的目标记。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008