`

mongodb(四)-文档

 
阅读更多

参考:

http://www.yiibai.com/mongodb/mongodb_insert_document.html

 

一、insert

    语法:db.COLLECTION_NAME.insert(Document)

> db.joan3.insert({_id:ObjectId(1234567890),title:'JOAN'})
WriteResult({ "nInserted" : 1 })

    如果集合在数据库中不存在,那么mongodb将自动创建此集合,然后把它插入文档。

    _id

    注意其中一个属性:_id。如果我们不指定这个id,mongodb会自动分配一个独特的ObjectId。_id是12个字节的十六进制数,12个字节划分如下:

_id: ObjectId(4 bytes timestamp, 3 bytes machine id, 2 bytes process id, 3 bytes incrementer)

    批量插入:

db.joan3.insert({},{})

 二、find

     非结构化查询所有文件。

     语法:db.COLLECTION_NAME.find()

     pretty方法:格式化显示结果

     语法:db.COLLECTION_NAME.find().pretty()

操作 语法 例子 RDBMS 等同
Equality {<key>:<value>} db.mycol.find({"by":"tutorials point"}).pretty() where by = 'tutorials point'
Less Than {<key>:{$lt:<value>}} db.mycol.find({"likes":{$lt:50}}).pretty() where likes < 50
Less Than Equals {<key>:{$lte:<value>}} db.mycol.find({"likes":{$lte:50}}).pretty() where likes <= 50
Greater Than {<key>:{$gt:<value>}} db.mycol.find({"likes":{$gt:50}}).pretty() where likes > 50
Greater Than Equals {<key>:{$gte:<value>}} db.mycol.find({"likes":{$gte:50}}).pretty() where likes >= 50
Not Equals {<key>:{$ne:<value>}} db.mycol.find({"likes":{$ne:50}}).pretty() where likes != 50
     投影:查询的时候,可选择查出的字段

     语法:db.COLLECTIONS_NAME.find({},{KEY:1})    --1 显示,0 隐藏

>
{ "_id" : ObjectId(5983548781331adf45ec5), "title":"MongoDB Overview"}
{ "_id" : ObjectId(5983548781331adf45ec6), "title":"NoSQL Overview"}
{ "_id" : ObjectId(5983548781331adf45ec7), "title":"Yiibai Overview"}
>
>db.mycol.find({},{"title":1,_id:0})
{"title":"MongoDB Overview"}
{"title":"NoSQL Overview"}
{"title":"Yiibai Overview"}
>

 

 三、AND

     语法:db.COLLECTION_NAME.find({key1:value1,key2:value2})

> db.joan3.find()
{ "_id" : {  }, "title" : "JOAN" }
{ "_id" : ObjectId("55ae4d2b97f4f4c667fe2976"), "title" : "joan" }
{ "_id" : ObjectId("55ae57abac51d53927cd1440"), "age" : 10 }
{ "_id" : ObjectId("55ae57ebac51d53927cd1441"), "name" : "JOAN" }
{ "_id" : ObjectId("55ae5817ac51d53927cd1442"), "name" : "JOAN", "age" : 10 }
> db.joan3.find({name:'JOAN',age:10})
{ "_id" : ObjectId("55ae5817ac51d53927cd1442"), "name" : "JOAN", "age" : 10 }

 四、OR

     语法:db.COLLECTION_NAME.find({$or:[{key1:value1},{key2:value2}}]})

> db.joan3.find({$or:[{name:'JOAN'},{age:10}]})
{ "_id" : ObjectId("55ae57abac51d53927cd1440"), "age" : 10 }
{ "_id" : ObjectId("55ae57ebac51d53927cd1441"), "name" : "JOAN" }
{ "_id" : ObjectId("55ae5817ac51d53927cd1442"), "name" : "JOAN", "age" : 10 }

 五、AND和OR一起用

    age=10且(name=‘JOAN’或title='joan')

> db.joan3.find({age:10},{$or:[{name:'JOAN'},{title:'joan'}]})
{ "_id" : ObjectId("55ae57abac51d53927cd1440") }
{ "_id" : ObjectId("55ae5817ac51d53927cd1442") }

 六、update

    db.COLLECTIONS_NAME.update(SELECTION_CRITERIA,UPDATED_DATA)

    

{ "_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"}

    默认只更新单一文件,需要更新多个文件,需要添加一个参数:mutil:true

    db.mycol.update({'title':'MongoDB Overview'},{$set:{'title':'New MongoDB Tutorial'}},{mutil:true})

七、save

  下面的例子将取代文件具有_id=xxxx的文档:

>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"}

 八、remove

   语法:db.COLLECTIONS_NAME.remove(DELLETION_CRITTERIA)

   已存在如下集合:

{ "_id" : ObjectId(5983548781331adf45ec5), "title":"MongoDB Overview"}
{ "_id" : ObjectId(5983548781331adf45ec6), "title":"NoSQL Overview"}
{ "_id" : ObjectId(5983548781331adf45ec7), "title":"Yiibai Overview"}
>db.mycol.remove({'title':'MongoDB Overview'})
>db.mycol.find()
{ "_id" : ObjectId(5983548781331adf45ec6), "title":"NoSQL Overview"}
{ "_id" : ObjectId(5983548781331adf45ec7), "title":"Yiibai Overview"}

   删除得只剩第一个集合:

    db.COLLECTIONS_NAME.remove(DELLETION_CRITTERIA,1)

    TRUNCATE命令,将删除整个文档:

    db.COLLECTIONS_NAME.remove()

九、sort

    排序,类似于order by。

    语法:db.COLLECTIONS_NAME.find().sort({KEY:1})    --1  升序排列,-1  降序排列,默认升序排列

 

十二、聚合

    语法:db.COLLECTIONS_NAME.aggregate(AGGREGATE_OPERATION)

>
{
   _id: ObjectId(7df78ad8902c)
   title: 'MongoDB Overview', 
   description: 'MongoDB is no sql database',
   by_user: 'yiibai point',
   url: 'http://www.yiibai.com',
   tags: ['mongodb', 'database', 'NoSQL'],
   likes: 100
},
{
   _id: ObjectId(7df78ad8902d)
   title: 'NoSQL Overview', 
   description: 'No sql database is very fast',
   by_user: 'yiibai point',
   url: 'http://www.yiibai.com',
   tags: ['mongodb', 'database', 'NoSQL'],
   likes: 10
},
{
   _id: ObjectId(7df78ad8902e)
   title: 'Neo4j Overview', 
   description: 'Neo4j is no sql database',
   by_user: 'Neo4j',
   url: 'http://www.neo4j.com',
   tags: ['neo4j', 'database', 'NoSQL'],
   likes: 750
},
> db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : 1}}}])
{
   "result" : [
      {
         "_id" : "yiibai point",
         "num_tutorial" : 2
      },
      {
         "_id" : "yiibai point",
         "num_tutorial" : 1
      }
   ],
   "ok" : 1
}
表达式 描述 实例
$sum 总结从集合中的所有文件所定义的值. db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : "$likes"}}}])
$avg 从所有文档集合中所有给定值计算的平均. db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$avg : "$likes"}}}])
$min 获取集合中的所有文件中的相应值最小. db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$min : "$likes"}}}])
$max 获取集合中的所有文件中的相应值的最大. db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$max : "$likes"}}}])
$push 值插入到一个数组生成文档中. db.mycol.aggregate([{$group : {_id : "$by_user", url : {$push: "$url"}}}])
$addToSet 值插入到一个数组中所得到的文档,但不会创建重复. db.mycol.aggregate([{$group : {_id : "$by_user", url : {$addToSet : "$url"}}}])
$first 根据分组从源文档中获取的第一个文档。通常情况下,这才有意义,连同以前的一些应用 “$sort”-stage. db.mycol.aggregate([{$group : {_id : "$by_user", first_url : {$first : "$url"}}}])
$last 根据分组从源文档中获取最后的文档。通常,这才有意义,连同以前的一些应用 “$sort”-stage. db.mycol.aggregate([{$group : {_id : "$by_user", last_url : {$last : "$url"}}}])

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    mongodb-driver-sync-4.2.3-API文档-中英对照版.zip

    包含翻译后的API文档:mongodb-driver-sync-4.2.3-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:org.mongodb:mongodb-driver-sync:4.2.3; 标签:mongodb、driver、sync、中英对照文档、jar包、java; ...

    mongodb-driver-core-4.2.3-API文档-中文版.zip

    包含翻译后的API文档:mongodb-driver-core-4.2.3-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.mongodb:mongodb-driver-core:4.2.3; 标签:mongodb、driver、core、中文文档、jar包、java; 使用方法:解压...

    mongodb-driver-sync-4.2.3-API文档-中文版.zip

    包含翻译后的API文档:mongodb-driver-sync-4.2.3-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.mongodb:mongodb-driver-sync:4.2.3; 标签:mongodb、driver、sync、中文文档、jar包、java; 使用方法:解压...

    mongodb-driver-core-4.2.3-API文档-中英对照版.zip

    包含翻译后的API文档:mongodb-driver-core-4.2.3-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:org.mongodb:mongodb-driver-core:4.2.3; 标签:mongodb、driver、core、中英对照文档、jar包、java; ...

    mongodb-async-driver-2.0.1 jar包

    MongoDB是一个流行的开源、分布式数据库系统,以JSON文档为中心,具备高性能、高可用性和可扩展性。MongoDB异步驱动程序(mongodb-async-driver)是为Java开发者设计的一个库,它允许应用程序以非阻塞的方式与...

    mongodb-driver-core-3.5.0.jar

    MongoDB是一个流行的开源、分布式数据库系统,以其灵活性、高性能和文档导向性而受到广大开发者喜爱。MongoDB的Java驱动程序是连接Java应用程序与MongoDB服务器的关键组件,它提供了丰富的API来执行各种数据库操作。...

    mongodb-linux-x86_64-rhel70-4.2.5.tgz

    MongoDB 是一个高性能、分布式、开源的文档型数据库,它以JSON格式存储数据,灵活性高,适合处理大量的半结构化和非结构化数据。在Linux环境下,尤其是像RHEL(Red Hat Enterprise Linux)7.0这样的系统上部署...

    mongodb-database-tools-windows-x86_64-100.3.1.zip

    MongoDB是一个流行的开源文档型数据库系统,以其灵活性、可扩展性和高性能而闻名。在MongoDB 4.4版本中,数据库备份(mongodump)和恢复(mongorestore)功能不再内置,用户需要单独下载MongoDB数据库工具来执行这些...

    mongodb-linux-x86_64-ubuntu1404-3.6.4

    MongoDB是一个开源、分布式、高性能的文档型数据库系统,它以JSON格式存储数据,支持丰富的查询语法和自动分片功能,适用于处理大量数据并需要高可用性和可扩展性的应用场景。这个压缩包“mongodb-linux-x86_64-...

    mongodb-linux-x86_64-rhel62-4.0.0.tgz

    MongoDB是一款开源、高性能、无模式的文档型数据库,它属于NoSQL数据库的一种。这个“mongodb-linux-x86_64-rhel62-4.0.0.tgz”文件是专门为基于Red Hat Enterprise Linux 6.2 (RHEL62)的64位Linux系统设计的MongoDB...

    mongodb-linux-x86_64-4.0.8.tgz

    MongoDB是一款开源、高性能、无模式的分布式文档型数据库,被广泛应用于Web应用、移动应用、大数据分析等领域。本文将详细解析"mongodb-linux-x86_64-4.0.8.tgz"这个压缩包文件及其核心内容,帮助读者深入了解...

    mongodb-linux-aarch64-ubuntu1804-4.2.5.tgz

    MongoDB 是一个高性能、开源、无模式的文档型数据库,被广泛应用于Web应用程序、数据分析、内容管理系统等场景。它支持多种平台,包括 Linux,而针对Linux的架构有多种,如x86_64(AMD64)和aarch64(ARM64)。在本...

    mongodb-linux-x86-64-rhel70-4.0.28.tgz

    2. **交易支持**:MongoDB从4.0版本开始引入ACID事务,4.4版本进一步完善了这一特性,提供跨多个文档的原子操作,确保数据一致性。 3. **聚合框架增强**:4.4版本提升了聚合操作的速度,支持更多的聚合运算符,允许...

    mongodb-compass-1.27.1-win32-x64.zip

    1. **数据可视化**:它提供了一个直观的界面来查看和理解数据库的结构,包括集合、文档、索引等。用户可以通过树形视图或表格视图浏览数据,同时支持图表展示复杂的数据关系。 2. **查询构建器**:对于不熟悉...

    mongodb-linux-x86_64-ubuntu1604-3.4.0.tgz

    MongoDB是一款开源、高性能、无模式的文档型数据库,它属于NoSQL数据库家族,由C++语言编写。MongoDB的设计目标是提供高可用性、可扩展性和灵活性,以适应不断变化的数据模型。在这个特定的场景中,我们关注的是...

    mongodb-linux-x86_64-rhel70-3.4.9.tgz

    MongoDB是一款广泛使用的开源、高性能、无模式的文档型数据库,尤其适合于处理大量数据的Web应用程序。在Linux系统上安装MongoDB时,通常需要下载适用于特定架构的二进制包,例如本例中的"mongodb-linux-x86_64-rhel...

    mongodb-linux-x86_64-3.4.10.tgz

    MongoDB是一款开源、高性能、无模式的文档型数据库,它在大数据处理和分布式系统中扮演着重要角色。本文将深入探讨MongoDB在Linux系统(特别是CentOS)中的安装过程,以及如何处理tgz格式的压缩包。 MongoDB 3.4.10...

    mongodb-compass-community-1.16.4-win32-x64.zip

    MongoDB是一种流行的开源NoSQL数据库系统,以文档型数据模型为主,支持键值对、集合和JSON格式的数据存储。MongoDB的设计目标是提供高可用性、高性能和易于扩展的解决方案,特别适合处理大规模数据和实时应用程序。...

    mongodb-windows-x86-64-6.0.5最新稳定版本

    MongoDB是一款开源、高性能、无模式的分布式文档型数据库,被广泛应用于Web应用程序、大数据分析、内容管理系统等场景。此“mongodb-windows-x86-64-6.0.5”是针对Windows 64位操作系统的最新稳定版本,旨在为用户...

    mongodb-linux-x86_64-enterprise-rhel70-4.4.5

    MongoDB是一款高性能、开源、无模式的文档型数据库,它属于NoSQL数据库家族,特别适合处理海量数据和高并发场景。在"mongodb-linux-x86_64-enterprise-rhel70-4.4.5"这个压缩包中,我们看到的是针对Red Hat ...

Global site tag (gtag.js) - Google Analytics