日期:2014-05-16  浏览次数:20514 次

Linux下操作MongoDB的普通流程

1,敲击>mongo进入

2,进入数据库数据库
>use jtxm;

3,如果搞了验证,则
>db.auth("root","123456")? 第一个参数为用户名,第二个为密码。如果返回值为1,则成功,如果为0,则失败。

4,查看该数据库下的所有集合
>show collections;

5,查看当前数据库名,直接输入
>db;

6,不加任何条件地查找当前集合的记录
>db.pet.find()

7,指定返回的键:
>db.pet.find({},{"bind":true,"create_time":true});第一个参数为条件(没填表示没有限制),第二个参数为指定返回的键名称。

8,查询条件就有很多了:
$lt,$lte,$gt,$gte对应小于,小于等于,大于,大于等于

>db.pet.find({"age":{"$gte":18,"$lte":30}})? 取18~30之间

$ne不等于某个特定值

>db.pet.find({"age":{"$ne":88}})

$in查询一个键的多个值

>db.pet.find({"age":{"$in":[12,15,29]}})

>db.pet.find({"pet_id":{"$in":[11222,"panda"]}})? 可以指定不同类型的条件或值

$nin与数组中所有条件都不匹配

>db.pet.find({"age":{"$nin":[80,85,90]}})

$or 接受包含所有可能条件

>db.pet.find({"$or":[{"pet_no":725},{"age":true}]})

$not是元条件句

>db.users.find({"id_num":{"$mod":[5,1]}})? 会返回1,6,11,16等结果
>db.users.find({"id_num":{"$not":{"$mod":[5,1]}}}) 会返回2,3,4,5,7,8等结果

正则表达式(可以匹配自身滴!)

>db.users.find({"name":/jone/i})?

?

数组查询:

$all 既要找到12,又要找到15

>db.users.find({"age":{"$all":[12,15]}})

要想查询数组指定位置的元素:

>db.user.find({"age.2":15})

$size 查询指定长度的数组

>db.user.find({"jobs":{"$size":3}})

$slice返回数组的一个子集合

>db.user.find("info",{"jobs":{"$slice":3}})

>db.user.find("info",{"jobs":{"$slice":-3}})

?

$elemMatch用来部分指定匹配数组中的每个内嵌文档的限定条件

db.blog.find({"comments":{"$elemMatch":{"author":"joe","score":{"$gte":6}}}})