MongoDB中的数据查询

来源:互联网 发布:seo的营销方法 编辑:程序博客网 时间:2024/05/15 01:18

MongoDB中的查询大致上分为以下五种:

一、操作符查询:

MongoDB中的操作符查询,其与RDBMS Where中的语句比较是这样的:



例如:

db.demo.find({"score" : {$gt : 85}})

其意思是查询数据库中成绩大于85分的信息,其等效于MySQL数据库中的下面的sql语句:

select * fom demo where score>85


二、根据数据类型来进行查询,由于其key都是固定的“$type”,因而也被称为“$type”操作符查询。

MongoDB 中可以使用的类型如下表所示:


比如说查询String类型的数据,语句如下:

db.demo.find({'title':{$type:2}})


三、正则表达式查询

正则表达式的API如下:

非打印字符:



特殊字符:



限定符:



定位符:



示例语句如下:

db.col.find({'title':{$regex:'^J'}})

其意思是查找title字段中以J字母开头的信息。


四、全文索引

创建全文索引

创建语句如下:

db.demo.ensureIndex({title:'text'})

其中title是被索引的字段。


查找全文索引

db.demo.getIndexes()


删除全文索引

db.demo.dropIndex('title_text')

这里需要注意的是,删除索引字段的时候传入的参数并不是被索引的字段,而是索引的name,如下:

[        {                "v" : 1,                "key" : {                        "_id" : 1                },                "name" : "_id_",                "ns" : "col.col"        },        {                "v" : 1,                "key" : {                        "_fts" : "text",                        "_ftsx" : 1                },                "name" : "title_text",                "ns" : "col.col",                "weights" : {                        "title" : 1                },                "default_language" : "english",                "language_override" : "language",                "textIndexVersion" : 2        }]

此时的name指的是title_text,而不是title。


根据索引查找信息

db.demo.find({$text:{$search:'PHP'}})


五、关键字查询

and条件查询

MongoDB 的 find() 方法可以传入多个键(key),每个键(key)以逗号隔开,相当于常规的 SQL 中的 AND 条件。

db.col.find({key1:value1, key2:value2}).pretty()


or条件查询

MongoDB OR 条件语句使用了关键字 $or,语法格式如下:
>db.col.find(
   {
      $or: [
    {key1: value1}, {key2:value2}
      ]
   }
).pretty()


除此之外还有:

$in:查询在指定数组范围之内的文档

比如说查询成绩在60-85之间的信息,语句如下:

db.demo.find({'score':{'$in':[60,85]}})


$nin:返回与指定数组中所有条件都不匹配的文档

比如说查询成绩不在60-85之间的信息,语句如下:

db.demo.find({'score':{'$nin':[60,85]}})


$not可以用在任何条件之上

 例如:

db.demo.find({"id":{"$not":{"score":[60,85]}}})

上面的语句作用等效于$nin。


除了上面的之外还有:$all用于多元素匹配数组,$size可以查询指定长度的数组。


0 0
原创粉丝点击