设为首页 加入收藏

TOP

Nosql数据库教程之初探MongoDB - 第二部分(二)
2014-11-24 03:31:16 来源: 作者: 【 】 浏览:10
Tags:Nosql 数据库 教程 初探 MongoDB -第二部分
actor" } { "_id" : ObjectId("4f2f473cc9031ac66270a281"), "age" : 33, "dob" : "09/12/1934", "first" : "judi", "gender" : "f", "hair_colour" : "white", "last" : "dench", "nationality" : "english", "occupation" : "actress" }

如果需要查询年龄小于等于40的呢?运行如下:

db.gbin1.find( { "age" : { "$lte" : 40 } } );

输出:

{ "_id" : ObjectId("4f2f473bc9031ac66270a27b"), "age" : 18, "dob" : "21/04/1978", "first" : "matthew", "gender" : "m", "hair_colour" : "brown", "last" : "setter", "nationality" : "australian", "occupation" : "developer" } { "_id" : ObjectId("4f2f473bc9031ac66270a27f"), "age" : 22, "dob" : "22/11/1958", "first" : "jamie lee", "gender" : "f", "hair_colour" : "brown", "last" : "curtis", "nationality" : "american", "occupation" : "actor" } { "_id" : ObjectId("4f2f473cc9031ac66270a281"), "age" : 33, "dob" : "09/12/1934", "first" : "judi", "gender" : "f", "hair_colour" : "white", "last" : "dench", "nationality" : "english", "occupation" : "actress" }

$gt/$gte

现在查询演员年龄大于47的,运行如下查询:

db.gbin1.find( { "age" : { "$gt" : 47 } } );

输出:

{ "_id" : ObjectId("4ef224bf0fec2806da6e9b29"), "age" : 65, "dob" : "03/06/1925", "first" : "arnold", "gender" : "m", "hair_colour" : "brown", "last" : "schwarzenegger", "nationality" : "american", "occupation" : "actor" }

如果包括47的呢?

db.gbin1.find( { "age" : { "$gte" : 47 } } );

输出:

{ "_id" : ObjectId("4ef224bf0fec2806da6e9b29"), "age" : 65, "dob" : "03/06/1925", "first" : "arnold", "gender" : "m", "hair_colour" : "brown", "last" : "schwarzenegger", "nationality" : "american", "occupation" : "actor" }

$in/$nin

如果查询指定规则的数据呢?这里我们看看那些人是演员或者开发者,为了更简单的查看,我们只返回姓和名:

db.gbin1.find( { 'occupation' : { '$in' : [ "actor", "developer" ] } }, { "first" : 1, "last" : 1 } );

输出:

{ "_id" : ObjectId("4f2f473bc9031ac66270a27b"), "first" : "matthew", "last" : "setter" } { "_id" : ObjectId("4f2f473bc9031ac66270a27c"), "first" : "james", "last" : "caan" } { "_id" : ObjectId("4f2f473bc9031ac66270a27d"), "first" : "arnold", "last" : "schwarzenegger" } { "_id" : ObjectId("4f2f473bc9031ac66270a27e"), "first" : "tony", "last" : "curtis" } { "_id" : ObjectId("4f2f473bc9031ac66270a27f"), "first" : "jamie lee", "last" : "curtis" } { "_id" : ObjectId("4f2f473bc9031ac66270a280"), "first" : "michael", "last" : "caine" }

可以看到我们可以使用$nin得到相反的结果:

db.gbin1.find( { 'occupation' : { '$nin' : [ "actor", "developer" ] } }, { "first" : 1, "last" : 1 } );

输出:

{ "_id" : ObjectId("4f2f473cc9031ac66270a281"), "first" : "judi", "last" : "dench" }

接下来我们组合一些运算符,比如,我们想查询所有是男性或者是开发人员,并且年纪小于40的人。如下:

db.gbin1.find( { $or : [ { "gender" : "m", "occupation" : "developer" } ], "age" : { "$gt" : 40 } }, { "first" : 1, "last" : 1, "occupation" : 1, "dob" : 1 } );

输出:

{ "_id" : ObjectId("4f2f473bc9031ac66270a27e"), "dob" : "21/04/1978", "first" : "tony", "last" : "curtis", "occupation" : "developer" }

正则表单式

不清楚是否大家满足于此,我承诺帮助大家查询更加复杂高级的组合,这里我们使用正则表达式。这里我们查询所有名里以“ma"或者”to”开始并且姓里以“se"或者"de"开始的人。如下:

db.gbin1.find( { "first" : /(ma|to)*/i, "last" : /(se|de)/i } );

输出:

{ "_id" : ObjectId("4f2f473bc9031ac66270a27b"), "age" : 18, "dob" : "21/04/1978", "first" : "matthew", "gender" : "m", "hair_colour" : "brown", "last" : "setter", "nationality" : "australian", "occupation" : "developer" } { "_id" : ObjectId("4f2f473cc9031ac66270a281"), "age" : 33, "dob" : "09/12/1934", "first" : "judi", "gender" : "f", "hair_colour" : "white", "last" : "dench", "nationality" : "english", "occupation" : "actress" }

以上查询中,我们在名中使用了一个正则表单如下:

"first" : /(ma|to)*/i

//i意味着我们使

首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Mongodb教程系列 下一篇AWR的基本知识

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Java 学习线路图是怎 (2025-12-25 15:19:15)
·关于 Java 学习,有 (2025-12-25 15:19:12)
·有没有Java swing教 (2025-12-25 15:19:09)
·Start, Stop, and Di (2025-12-25 14:50:57)
·C语言入门教程:零基 (2025-12-25 14:50:54)