mongodb入门之mongodb基本语法

主要介绍下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"})



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章