查询操作的实例详解,MongoDB各种查询操作详解

作者:计算机知识

MongoDB 查询操作的实例详解

一、find操作

一.  基本查询:

node.js操作MongoDB时,须求设置mongodb包

使用find或findOne实行询问。并得以开始展览限制查询、数据集查询、不等式查询,以及其它的有的询问。
询问将会回来DBcursor 游标唯有在你必要的时候回来文书档案

MongoDB中应用find来开始展览询问,通过点名find的首先个参数可以完毕成套和一些查询。

    构造查询数据。  

1、使用npm安装cnpm

针对游标再次来到的文书档案(结果集) 举行操作 比方:忽略一定数额的结果,只怕重回结果的数额,以及对结果的排序。

1、查询任何

复制代码 代码如下:

npm install -g cnpm --registry=https://registry.npm.taobao.org

1.点名须要回到的键

图片 1

    > db.test.findOne()
    {
         "_id" : ObjectId("4fd58ecbb9ac507e96276f1a"),
         "name" : "stephen",
         "age" : 35,
         "genda" : "male",
         "email" : "stephen@hotmail.com"
    }
 
    --多尺度查询。上边包车型客车示范等同于SQL语句的where name = "stephen" and age = 3⑤
    > db.test.find({"name":"stephen","age":35})
查询操作的实例详解,MongoDB各种查询操作详解。    { "_id" : ObjectId("4fd58ecbb9ac507e96276f1a"), "name" : "stephen", "age" : 35, "genda" : "male", "email" : "stephen@hotmail.com" }
 
    --重返钦点的文书档案键值对。上面包车型客车示范将只是重回name和age键值对。
    > db.test.find({}, {"name":1,"age":1})
   { "_id" : ObjectId("4fd58ecbb9ac507e96276f1a"), "name" : "stephen", "age" : 35 }

2、使用cnpm安装mongodb包

偶然单纯对文书档案的某几个键值感兴趣,能够遮挡再次回到的不感兴趣的键值,再次来到感兴趣的键值

空的询问文档{}会同盟集合的全体内容。假设不点名询问文书档案,暗中认可就是{}。

 

cnpm install mongodb
mongos> db.blog.find({},{“name”:1}) 
{ “_id” : ObjectId(“5659836e73c8340448fa470e”) } 
{ “_id” : ObjectId(“565e5c0e73c8340448fa470f”) } 
{ “_id” : ObjectId(“565f998e73c8340448fa4710”) } 
{ “_id” : 1, “name” : “zmkzmkzmkzmkzmk” } 
{ “_id” : 2, “name” : “zmkzmkzmkzmkzmk” } 
{ “_id” : 3, “name” : “zmkzmkzmkzmkzmk” } 
{ “_id” : ObjectId(“566004d173c8340448fa4712”), “name” : “zmk” }

贰、部分查询

    --钦定不回来的文书档案键值对。上边包车型大巴演示将回到除name之外的持有键值对。
    > db.test.find({}, {"name":0})
    { "_id" : ObjectId("4fd58ecbb9ac507e96276f1a"), "age" : 35, "genda" : "male", "email" : "stephen@hotmail.com" }  

图片 2

可以那样:

图片 3

2.  询问条件:

图片 4

mongos> db.blog.find({},{“name”:1,”_id”:0}) 
{ “name” : “zmkzmkzmkzmkzmk” } 
{ “name” : “zmkzmkzmkzmkzmk” } 
{ “name” : “zmkzmkzmkzmkzmk” } 
{ “name” : “zmk” }

三、键的筛选

    MongoDB提供了一组比较操作符:$lt/$lte/$gt/$gte/$ne,依次等价于</<=/>/>=/!=。  

node.js操作MongoDB时的多种方法:插入数据、更新数据、删除数据、查找数据。

点名重临的键值,是查询结果越来越高速。此接口可用来标准查询,方便结果管理。

键的筛选是查询时只回去本身感兴趣的键值,通过点名find的第三个参数来促成。那样能够省去传输的数据量,又能节省客户端解码文书档案的时刻和内部存储器消耗。

复制代码 代码如下:

操作步骤
手续一 创办实施文件xx.js
手续二 巅峰调用实施文书 node xx.js

注意:
操作前需求运转服务器
再便是须求设置操作的数据库、操作的集聚

二.查询条件

图片 5

    --上边的言传身教再次回到符合条件age >= 1八 && age <= 40的文书档案。
    > db.test.find({"age":{"$gte":18, "$lte":40}})
    { "_id" : ObjectId("4fd58ecbb9ac507e96276f1a"), "name" : "stephen", "age" : 35,"genda" : "male", "email" : "stephen@hotmail.com" }
 
    --上边包车型客车言传身教重临条件符合name != "stephen1"
    > db.test.find({"name":{"$ne":"stephen1"}})
    { "_id" : ObjectId("4fd58ecbb9ac507e96276f1a"), "name" : "stephen", "age" : 35,"genda" : "male", "email" : "stephen@hotmail.com" }
 
    --$in等同于SQL中的in,上面包车型地铁亲自去做等同于SQL中的in ("stephen","stephen一")
    > db.test.find({"name":{"$in":["stephen","stephen1"]}})
    { "_id" : ObjectId("4fd58ecbb9ac507e96276f1a"), "name" : "stephen", "age" : 35,"genda" : "male", "email" : "stephen@hotmail.com" } 
 
    --和SQL分裂的是,MongoDB的in list中的数据能够是区别门类。这种景观可用于差别品种的小名场景。
    > db.test.find({"name":{"$in":["stephen",123]}})
    { "_id" : ObjectId("4fd58ecbb9ac507e96276f1a"), "name" : "stephen", "age" : 35,"genda" : "male", "email" : "stephen@hotmail.com" }
 
    --$nin等同于SQL中的not in,同一时候也是$in的取反。如:
    > db.test.find({"name":{"$nin":["stephen2","stephen1"]}})
    { "_id" : ObjectId("4fd58ecbb9ac507e96276f1a"), "name" : "stephen", "age" : 35,"genda" : "male", "email" : "stephen@hotmail.com" }
 
    --$or等同于SQL中的or,$or所指向的标准化被内置三个数组中,每种数组成分表示or的一个标准。
    --上边包车型地铁演示等同于name = "stephen一" or age = 3伍
    > db.test.find({"$or": [{"name":"stephen1"}, {"age":35}]})
    { "_id" : ObjectId("4fd58ecbb9ac507e96276f1a"), "name" : "stephen", "age" : 35,"genda" : "male", "email" : "stephen@hotmail.com" }
 
    --上面包车型地铁言传身教演示了哪些混合使用$or和$in。
    > db.test.find({"$or": [{"name":{"$in":["stephen","stephen1"]}}, {"age":36}]})
    { "_id" : ObjectId("4fd58ecbb9ac507e96276f1a"), "name" : "stephen", "age" : 35,"genda" : "male", "email" : "stephen@hotmail.com" }
 
    --$not表示取反,等同于SQL中的not。
    > db.test.find({"name": {"$not": {"$in":["stephen2","stephen1"]}}})
    { "_id" : ObjectId("4fd58ecbb9ac507e96276f1a"), "name" : "stephen", "age" : 35,"genda" : "male", "email" : "stephen@hotmail.com" }

图片 6

正如操作符

询问时,数据库所关怀的查询文书档案的值必须是常量。

 

图片 7

"$lt"、"$lte"、“$gt”,“$gte” 分别对应 <,<=,>,>=。

二、查询条件

三.  null数据类型的查询:

图片 8

小贴士:在mongodb shell中定义方法的大约格式:

壹、比较查询

复制代码 代码如下:

图片 9

mongos> var insertName=function(){ 
… for(var i=0;i<10;i  ){ 
… db.blog.insert({“_id”:1,”name”:”zmk” i}) 
… } 
… } 
mongos> insertName() 

$lt,$lte,$gt,$gte,$ne和<,<=,>,>=,!=是种种对应的,它们得以构成起来以搜索3个限量内的值。

    --在进展值为null数据的查询时,全数值为null,以及不包涵内定键的文书档案均会被搜寻出来。
    > db.test.find({"x":null})
    { "_id" : ObjectId("4fd59d30b9ac507e96276f1b"), "x" : null }
    { "_id" : ObjectId("4fd59d49b9ac507e96276f1c"), "y" : 1 }
 
    --须求将null作为数组中的2个要素进行相等性判定,即使这些数组中唯有3个成分。
    --再有就是经过$exists判别内定键是不是存在。
    > db.test.find({"x": {"$in": [null], "$exists":true}})
    { "_id" : ObjectId("4fd59d30b9ac507e96276f1b"), "x" : null }  

图片 10

效果:

图片 11

四.  正则查询:

一、插入数据

本文由bwin必赢发布,转载请注明来源

关键词: 亚洲必赢565.net