参考:
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 |
投影:查询的时候,可选择查出的字段
三、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"}}}]) |
相关推荐
包含翻译后的API文档:mongodb-driver-sync-4.2.3-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:org.mongodb:mongodb-driver-sync:4.2.3; 标签:mongodb、driver、sync、中英对照文档、jar包、java; ...
包含翻译后的API文档:mongodb-driver-core-4.2.3-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.mongodb:mongodb-driver-core:4.2.3; 标签:mongodb、driver、core、中文文档、jar包、java; 使用方法:解压...
包含翻译后的API文档:mongodb-driver-sync-4.2.3-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.mongodb:mongodb-driver-sync:4.2.3; 标签:mongodb、driver、sync、中文文档、jar包、java; 使用方法:解压...
包含翻译后的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是一个流行的开源、分布式数据库系统,以JSON文档为中心,具备高性能、高可用性和可扩展性。MongoDB异步驱动程序(mongodb-async-driver)是为Java开发者设计的一个库,它允许应用程序以非阻塞的方式与...
MongoDB是一个流行的开源、分布式数据库系统,以其灵活性、高性能和文档导向性而受到广大开发者喜爱。MongoDB的Java驱动程序是连接Java应用程序与MongoDB服务器的关键组件,它提供了丰富的API来执行各种数据库操作。...
MongoDB 是一个高性能、分布式、开源的文档型数据库,它以JSON格式存储数据,灵活性高,适合处理大量的半结构化和非结构化数据。在Linux环境下,尤其是像RHEL(Red Hat Enterprise Linux)7.0这样的系统上部署...
MongoDB是一个流行的开源文档型数据库系统,以其灵活性、可扩展性和高性能而闻名。在MongoDB 4.4版本中,数据库备份(mongodump)和恢复(mongorestore)功能不再内置,用户需要单独下载MongoDB数据库工具来执行这些...
MongoDB是一个开源、分布式、高性能的文档型数据库系统,它以JSON格式存储数据,支持丰富的查询语法和自动分片功能,适用于处理大量数据并需要高可用性和可扩展性的应用场景。这个压缩包“mongodb-linux-x86_64-...
MongoDB是一款开源、高性能、无模式的文档型数据库,它属于NoSQL数据库的一种。这个“mongodb-linux-x86_64-rhel62-4.0.0.tgz”文件是专门为基于Red Hat Enterprise Linux 6.2 (RHEL62)的64位Linux系统设计的MongoDB...
MongoDB是一款开源、高性能、无模式的分布式文档型数据库,被广泛应用于Web应用、移动应用、大数据分析等领域。本文将详细解析"mongodb-linux-x86_64-4.0.8.tgz"这个压缩包文件及其核心内容,帮助读者深入了解...
MongoDB 是一个高性能、开源、无模式的文档型数据库,被广泛应用于Web应用程序、数据分析、内容管理系统等场景。它支持多种平台,包括 Linux,而针对Linux的架构有多种,如x86_64(AMD64)和aarch64(ARM64)。在本...
2. **交易支持**:MongoDB从4.0版本开始引入ACID事务,4.4版本进一步完善了这一特性,提供跨多个文档的原子操作,确保数据一致性。 3. **聚合框架增强**:4.4版本提升了聚合操作的速度,支持更多的聚合运算符,允许...
1. **数据可视化**:它提供了一个直观的界面来查看和理解数据库的结构,包括集合、文档、索引等。用户可以通过树形视图或表格视图浏览数据,同时支持图表展示复杂的数据关系。 2. **查询构建器**:对于不熟悉...
MongoDB是一款开源、高性能、无模式的文档型数据库,它属于NoSQL数据库家族,由C++语言编写。MongoDB的设计目标是提供高可用性、可扩展性和灵活性,以适应不断变化的数据模型。在这个特定的场景中,我们关注的是...
MongoDB是一款广泛使用的开源、高性能、无模式的文档型数据库,尤其适合于处理大量数据的Web应用程序。在Linux系统上安装MongoDB时,通常需要下载适用于特定架构的二进制包,例如本例中的"mongodb-linux-x86_64-rhel...
MongoDB是一款开源、高性能、无模式的文档型数据库,它在大数据处理和分布式系统中扮演着重要角色。本文将深入探讨MongoDB在Linux系统(特别是CentOS)中的安装过程,以及如何处理tgz格式的压缩包。 MongoDB 3.4.10...
MongoDB是一种流行的开源NoSQL数据库系统,以文档型数据模型为主,支持键值对、集合和JSON格式的数据存储。MongoDB的设计目标是提供高可用性、高性能和易于扩展的解决方案,特别适合处理大规模数据和实时应用程序。...
MongoDB是一款开源、高性能、无模式的分布式文档型数据库,被广泛应用于Web应用程序、大数据分析、内容管理系统等场景。此“mongodb-windows-x86-64-6.0.5”是针对Windows 64位操作系统的最新稳定版本,旨在为用户...
MongoDB是一款高性能、开源、无模式的文档型数据库,它属于NoSQL数据库家族,特别适合处理海量数据和高并发场景。在"mongodb-linux-x86_64-enterprise-rhel70-4.4.5"这个压缩包中,我们看到的是针对Red Hat ...