mongodb入门之mongodb基本语法
2015-01-11 22:22
281 查看
主要介绍下mongodb的基本语法,增删改查等
我们都熟悉mysql和oracle的基本操作,这里介绍mongodb的基本语法
首先要比较下mysql和mongodb的差别
mysql和oracle都有实例的概念,即数据库实例。而mongodb同样有实例的概念,只是初始化默认提供test数据库
mongodb基本语法实战
mongodb的客户端是一个js编译器,所以支持js语法,默认连接的是test数据库
1.insert操作
>db.test.insert({"name":"jack","age":20})
>db.test.insert({"name":"tom","age":23})
>db.test.insert({"name":"tom","age":null})
2.find操作
注意:_id自动是数据库默认的guid,保证数据的唯一性;安装bson的相识书写文档,不符合语法会提示错误
>db.test.find()
>db.test.find({"name":"tom"})
(1)一个查询document里可以包含多个条件,默认多条件之间是and关系
>db.test.find({"name":"tom","age":23})
(2)有时候我们并不需要查询的所有内容,可以指定查询返回的内容
比如我们只需要name的信息,可以执行
>db.test.find({},{"name":1})
如果不想显示_id键,那么可以执行
>db.test.find({},{"name":1,"_id":0})
(3)查询条件
<1>$lt,$lte,$gt,$gte分别对应<,<=,>,>=
比如查询age在18-22之间的用户
>db.test.find({"age":{"$gte":18,"$lte":22}})
<2>or查询
比如查询年龄是20或24的数据,可以执行
>db.test.find({"age":{"$in":[20,24]}})
与in相反的是nin,如下
>db.test.find({"age":{"$nin":[20,24]}})
如果是多个条件的or查询,譬如查询年龄在20或24的,或名字都叫做tom的数据
>db.test.find({"$or":[{"age":{"$in":[20,24]}},{"name":"tom"}]})
<3>$not使用,在前边操作的基础上相反
>db.test.find({"age":{"$in":[20,24]}})
>db.test.find({"age":{"$not":{"$in":[20,24]}}})
(4)特殊类型查询
查询null,null同时匹配自身和不存在的key
>db.test.find({"age":null})
>db.test.find({"age1":null})
(5)正则表达式
>db.test.find({"name":/tom/i})
mongodb是使用perl来匹配正则表达式,所以pcre允许的语法都可以在mongodb中使用
(6)查询数组
>db.food.insert({"fruit":["apple", "banana", "peach"]})
查找水果里有香蕉的ducoment
>db.food.find({"fruit":"banana"})
查询既有apple又有banana的document
(7)查询嵌入document
>db.test.insert({"name":{"first":"Joe","last":"Schmoe"},"age":45})
>db.test.find({"name.first":"Joe","name.last":"Schmoe"})
(8)where查询
假如有个list,想查询key的值里有相等的document
>db.foo.insert({"apple":1,"banana":6,"peach":3})
>db.foo.insert({"apple":1,"spinach":4,"watermelon":4})
第二个document里,菠菜和西瓜等值,这个应该查询到
>db.foo.find({"$where":function() {
for (var current in this) {
for (var other in this) {
if (current != other && this [current] == this [other])
return true;
}
}
}
return false;
}})
(9)游标
3.update操作
注意:update方法的第一个参数是查找的条件,第二个参数是更新的值
>db.test.update({"name":"tom"},{"name":"tom","age":35})
4.remove操作
>db.test.remove({"name":"tom"})
我们都熟悉mysql和oracle的基本操作,这里介绍mongodb的基本语法
首先要比较下mysql和mongodb的差别
mysql和oracle都有实例的概念,即数据库实例。而mongodb同样有实例的概念,只是初始化默认提供test数据库
mongodb基本语法实战
mongodb的客户端是一个js编译器,所以支持js语法,默认连接的是test数据库
1.insert操作
>db.test.insert({"name":"jack","age":20})
>db.test.insert({"name":"tom","age":23})
>db.test.insert({"name":"tom","age":null})
2.find操作
注意:_id自动是数据库默认的guid,保证数据的唯一性;安装bson的相识书写文档,不符合语法会提示错误
>db.test.find()
>db.test.find({"name":"tom"})
(1)一个查询document里可以包含多个条件,默认多条件之间是and关系
>db.test.find({"name":"tom","age":23})
(2)有时候我们并不需要查询的所有内容,可以指定查询返回的内容
比如我们只需要name的信息,可以执行
>db.test.find({},{"name":1})
如果不想显示_id键,那么可以执行
>db.test.find({},{"name":1,"_id":0})
(3)查询条件
<1>$lt,$lte,$gt,$gte分别对应<,<=,>,>=
比如查询age在18-22之间的用户
>db.test.find({"age":{"$gte":18,"$lte":22}})
<2>or查询
比如查询年龄是20或24的数据,可以执行
>db.test.find({"age":{"$in":[20,24]}})
与in相反的是nin,如下
>db.test.find({"age":{"$nin":[20,24]}})
如果是多个条件的or查询,譬如查询年龄在20或24的,或名字都叫做tom的数据
>db.test.find({"$or":[{"age":{"$in":[20,24]}},{"name":"tom"}]})
<3>$not使用,在前边操作的基础上相反
>db.test.find({"age":{"$in":[20,24]}})
>db.test.find({"age":{"$not":{"$in":[20,24]}}})
(4)特殊类型查询
查询null,null同时匹配自身和不存在的key
>db.test.find({"age":null})
>db.test.find({"age1":null})
(5)正则表达式
>db.test.find({"name":/tom/i})
mongodb是使用perl来匹配正则表达式,所以pcre允许的语法都可以在mongodb中使用
(6)查询数组
>db.food.insert({"fruit":["apple", "banana", "peach"]})
查找水果里有香蕉的ducoment
>db.food.find({"fruit":"banana"})
查询既有apple又有banana的document
(7)查询嵌入document
>db.test.insert({"name":{"first":"Joe","last":"Schmoe"},"age":45})
>db.test.find({"name.first":"Joe","name.last":"Schmoe"})
(8)where查询
假如有个list,想查询key的值里有相等的document
>db.foo.insert({"apple":1,"banana":6,"peach":3})
>db.foo.insert({"apple":1,"spinach":4,"watermelon":4})
第二个document里,菠菜和西瓜等值,这个应该查询到
>db.foo.find({"$where":function() {
for (var current in this) {
for (var other in this) {
if (current != other && this [current] == this [other])
return true;
}
}
}
return false;
}})
(9)游标
3.update操作
注意:update方法的第一个参数是查找的条件,第二个参数是更新的值
>db.test.update({"name":"tom"},{"name":"tom","age":35})
4.remove操作
>db.test.remove({"name":"tom"})
相关文章推荐
- linux脚本编程快速入门-例子+基本语法
- 初级入门级教程CSS的基本语法
- Ruby on Rails入门笔记(1)ruby基本语法概念
- 学习MongoDB--(2-2):MongoDB入门(Shell基本操作)
- JavaScript语法入门系列(三) 基本数据类型及其对应对象类型
- Visual Studio 2005入门 之 C#基本语法 小结考试[视频]
- PHP入门必须掌握的基本语法
- JavaScript入门之一:HTML常用标签、Js基本语法
- MongoDB入门1――简介、安装及基本使用
- linux shell编程五步拳(张迅雷闪击shell系列) 第一集 shell基本语法快速入门
- [走进C#世界]入门篇之基本语法
- SQL入门基本语法
- JavaScript基本入门语法集合第1/3页
- MongoDB入门1——简介、安装及基本使用
- asp学习入门基本语法
- ruby on rails入门系列--ruby的基本语法
- F#入门:基本语法,模式匹配及List
- SQLite入门之基本语法
- Flex入门--Flex基本语法