MongoDB
从现在开始进行MongoDB的系统学习。
首先我要了解 MongoDB是什么?有什么优点?
Mongodb,分布式文档存储数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。Mongo使用C++开发。
- 它非常容易地运行
- 非常自由的 Schema 模型,而且可以很容易地和 JSON 类的数据结果映射起来,这对于程序员来于有很大的感染力(它完全符合程序员的逻辑思维),而且,程序员总是在项目可以做技术选型的人。
- 成熟和健壮,track record,被真实的 Use Case 测试过,等等。对于那些喜欢选择成熟的技术的系统管理员和运营专业来说,这是一个很典型的选择。
- 它单系统,低并发读的性能测试非常令人惊讶,而对于那些没有经验的评估者来说,这基本上来说是最重要的。
MongoDB 支持嵌套域的查询,可以深入到嵌套的对象和数组中
{
'username':'bob'.
'address':{
'street':'123Main Street',
'city':'Springfiel',
'state':'NY'
}
}
我们可以这样查询嵌套在里层的域
db.users.find({'address.state':'NY'})
MongoDB 支持服务器端JavaScript执行
javaScript是MongoDB的一种通用语言,它可以被用在查询,聚集函数,直接由数据库执行。
下面是一个使用javascript的查询例子:
db.foo.find({$where:function(){return this.x==this.y;}})
发送代码到数据库执行:
db.eval(function(name){return “Hello, ”+name;},[“Joe”])
javaScript的变量可以被存储在数据库中并被其他javas作为全局变量使用。任何合法的javascript类型包括函数和对象,都可以被存储在MongoDB中,所以javascript可以被用来写<存储过程>