MongoDB应用学习

简介:

创建数据库可以直接使用use test

但是这个时候show dbs是看不到的,只有加入了数据才算真正创建了。

 

collection对应mysql中表的概念

collection中每条数据在生成的时候会自行生成_id的字段

 

db.pet.find()

相当于select * from pet

> db.pet.find() 
{ "_id" : ObjectId("513d489ff596e5c47cf26c28"), "Id" : "1", "Name" : "cat1", "skill" : "2" }

db.pet.find(<json>)

代表select * from pet where XXX

> db.pet.find({_id : ObjectId("513d489ff596e5c47cf26c28")}) 
{ "_id" : ObjectId("513d489ff596e5c47cf26c28"), "Id" : "1", "Name" : "cat1", "skill" : "2" }

db.pet.findOne({'Id': '2'})

只查找一个

 

增删改查分别对应

save

remove

update

find/findOne

 

db.currentOp来获取当前操作线程的相关信息

创建索引有两种方法:

db.system.indexes.insert(XXX)

db.system.ensureIndex(XXXX)

第二种更常用

索引和mysql的索引一样,是按照B+树来排序的,所以需要设置B+树的顺序,排列顺序为从小到大设置为1,排列顺序为从大到小设置为-1

 

mongo的索引分为三种:

唯一索引

松散索引(null行不加入索引)

多值索引(可以对一个array进行索引)

http://blog.nosqlfan.com/html/3656.html

 

索引在后台创建

db.values.ensureIndex({open: 1, close: 1}, {background: true})

 

mongodb中各个结构是有提供各自的api的,具体需要参考:

http://api.mongodb.org/js/2.3.2/index.html

 

查询一个collection中某个字段有哪些值:

> db.pet.distinct("skill") 
[ "1", "2" ]

只显示一些字段:

> db.pet.find({},{'skill':1}) 
{ "_id" : ObjectId("513d4adbf596e5c47cf26c2b"), "skill" : "1" } 
{ "_id" : ObjectId("513d489ff596e5c47cf26c28"), "skill" : "2" }

这里的_id是默认的Id,必须要显示出来的

mysql中limit start,num

> db.pet.find().skip(1).limit(1) 
{ "Id" : "1", "Name" : "cat1", "_id" : ObjectId("513d489ff596e5c47cf26c28"), "pic" : "noooo", "skill" : "2" }

 

MongoDB语法 MySql语法

db.test.find({'name':'foobar'})<==> select * from test where name='foobar'

db.test.find() <==> select *from test

db.test.find({'ID':10}).count()<==> select count(*) from test where ID=10

db.test.find().skip(10).limit(20)<==> select * from test limit 10,20

db.test.find({'ID':{$in:[25,35,45]}})<==> select * from test where ID in (25,35,45)

db.test.find().sort({'ID':-1}) <==> select * from test order by IDdesc

db.test.distinct('name',{'ID':{$lt:20}}) <==> select distinct(name) from testwhere ID<20

db.test.group({key:{'name':true},cond:{'name':'foo'},reduce:function(obj,prev){prev.msum+=obj.marks;},initial:{msum:0}}) <==> select name,sum(marks) from testgroup by name

db.test.find('this.ID<20',{name:1}) <==> select name from test whereID<20

db.test.insert({'name':'foobar','age':25})<==>insertinto test ('name','age') values('foobar',25)

db.test.remove({}) <==> delete * from test

db.test.remove({'age':20}) <==> delete test where age=20

db.test.remove({'age':{$lt:20}}) <==> elete test where age<20

db.test.remove({'age':{$lte:20}}) <==> delete test where age<=20

db.test.remove({'age':{$gt:20}}) <==> delete test where age>20

db.test.remove({'age':{$gte:20}})<==> delete test where age>=20

db.test.remove({'age':{$ne:20}}) <==> delete test where age!=20

db.test.update({'name':'foobar'},{$set:{'age':36}})<==> update test set age=36 where name='foobar'

db.test.update({'name':'foobar'},{$inc:{'age':3}})<==> update test set age=age+3 where name='foobar'

from:http://blog.csdn.net/shellching/article/details/7651979

 

php安装mongo需要使用扩展

文档在这里:

http://docs.mongodb.org/ecosystem/drivers/php/

php的mongo扩展的使用文档在这里:

http://blog.mongodb.org/post/24960636131/mongodb-for-the-php-mind-part-1




本文转自轩脉刃博客园博客,原文链接:http://www.cnblogs.com/yjf512/archive/2013/03/18/2965919.html,如需转载请自行联系原作者

相关文章
|
存储 NoSQL 物联网
MongoDB应用场景
MongoDB应用场景
|
存储 缓存 NoSQL
MongoDB 是什么?有哪些应用场景?
MongoDB 是一个由 MongoDB Inc. 开发的基于分布式文件存储的面向文档的数据库,自 2009 年推出以来,以其高性能、易部署、模式自由、强大的查询语言和出色的可扩展性受到广泛欢迎。它适用于互联网应用、日志分析、缓存、地理信息系统等多种场景。MongoDB 支持多种编程语言,并提供了丰富的社区支持,便于开发者快速上手。结合板栗看板等工具,MongoDB 可进一步提升数据存储、分析和同步的效率,支持个性化功能实现,助力团队协作和项目管理。
4517 1
|
存储 JSON NoSQL
学习 MongoDB:打开强大的数据库技术大门
MongoDB 是一个基于分布式文件存储的文档数据库,由 C++ 编写,旨在为 Web 应用提供可扩展的高性能数据存储解决方案。它与 MySQL 类似,但使用文档结构而非表结构。核心概念包括:数据库(Database)、集合(Collection)、文档(Document)和字段(Field)。MongoDB 使用 BSON 格式存储数据,支持多种数据类型,如字符串、整数、数组等,并通过二进制编码实现高效存储和传输。BSON 文档结构类似 JSON,但更紧凑,适合网络传输。
730 15
|
存储 NoSQL atlas
探索MongoDB:发展历程、优势与应用场景
MongoDB 是一个开源的文档型数据库,由 DoubleClick 团队于2007年创立,旨在解决传统数据库的扩展性和灵活性问题。它支持 JSON 格式的存储和查询,具备高可用性、高扩展性和灵活性等优势。MongoDB 适用于社交、物联网、视频直播和内容管理等多种场景,并被阿里巴巴、腾讯等一线互联网公司广泛使用。其主要版本包括 MongoDB Atlas(云服务)、MongoDB Enterprise Advanced(商业版)和 MongoDB Community Edition(免费版)。自2009年发布1.0版本以来,MongoDB 不断创新,最新版本为7.0,在性能和功能上持续优化。
1395 12
|
存储 NoSQL 关系型数据库
微服务——MongoDB的应用场景
随着Web2.0时代的到来,传统关系型数据库(如MySQL)在高并发读写、海量数据存储及高可扩展性需求方面逐渐力不从心。而MongoDB凭借其灵活的文档结构和高效性能,在社交、游戏、物流、物联网和视频直播等场景中表现出色。这些场景通常具有数据量大、写入频繁且对事务要求不高的特点。选择MongoDB适合以下情况:应用无需复杂事务与join支持、需求不确定需快速迭代、需处理高QPS读写或超大规模数据存储、追求高可用性和快速水平扩展能力。相比MySQL,MongoDB能以更低的学习、开发和运维成本满足现代应用需求。
606 0
|
存储 监控 NoSQL
MongoDB以其独特的优势和广泛的应用场景
MongoDB以其独特的优势和广泛的应用场景
745 8
|
存储 NoSQL 物联网
这些案例展示了MongoDB在不同行业中的广泛应用
这些案例展示了MongoDB在不同行业中的广泛应用
911 5
|
存储 NoSQL 物联网
MongoDB在多个行业有广泛应用
MongoDB在多个行业有广泛应用
462 4
|
存储 监控 NoSQL
MongoDB在不同行业中的广泛应用
MongoDB在不同行业中的广泛应用
784 3
|
存储 NoSQL 物联网
MongoDB在哪些领域有应用?
MongoDB在哪些领域有应用?
671 3

推荐镜像

更多