MongoDB条件操作符和$type操作符

本文详细介绍了MongoDB的条件操作符,包括$gt、$gte、$lt、$lte、$ne、$eq以及它们的用法示例。同时,也讲解了$type操作符,用于根据BSON类型查询数据。

MongoDB条件操作符和$type操作符

一、条件操作符

MongoDB中条件操作符有:

  • (>) 大于 - $gt(greater than)
  • (<) 小于 - $lt (less than)
  • (>=) 大于等于 - $gte(gt qeual >=)
  • (<= ) 小于等于 - $lte(lt equal <=)
  • (!=)不等于 - $ne(not equal !=)
  • (=)等于 - $eq(equal =)

使用的数据库名称为"user" 我们的集合名称为"col",以下为我们插入的数据

> db.col.insert({
        title: 'PHP 教程',
        description: 'PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。',
        by: '菜鸟教程',
        url: 'http://www.runoob.com',
        tags: ['php'],
        likes: 200
   })
   
>db.col.insert({title: 'Java 教程', 
    description: 'Java 是由Sun Microsystems公司于1995年5月推出的高级程序设计语言。',
    by: '菜鸟教程',
    url: 'http://www.runoob.com',
    tags: ['java'],
    likes: 150
})

>db.col.insert({title: 'MongoDB 教程', 
    description: 'MongoDB 是一个 Nosql 数据库',
    by: '菜鸟教程',
    url: 'http://www.runoob.com',
    tags: ['mongodb'],
    likes: 100
})

1、MongoDB (>) 大于操作符 - $gt

获取 “col” 集合中 “likes” 大于 100 的数据,可以使用以下命令:

>db.col.find({likes : {$gt : 100}})
\\类似于SQL语句:Select * from col where likes > 100

输出结果:

>db.col.find({likes : {$gt : 100}})
{ "_id" : ObjectId("616699516fdede4580efd221"), "title" : "PHP 教程", "description" : "PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。", "by" : "菜鸟教程", "url" : "http://www.runoob.com", "tags" : [ "php" ], "likes" : 200 }
{ "_id" : ObjectId("616699626fdede4580efd222"), "title" : "Java 教程", "description" : "Java 是由Sun Microsystems公司于1995年5月推出的高级程序设计语言。", "by" : "菜鸟教程", "url" : "http://www.runoob.com", "tags" : [ "java" ], "likes" : 150 }

2、MongoDB(>=)大于等于操作符 - $gte

获取"col"集合中 “likes” 大于等于 100 的数据,可以使用以下命令:

>db.col.find({likes : {$gte : 100}})
\\类似于SQL语句:Select * from col where likes >=100

输出结果:

> db.col.find({likes : {$gte : 100}})
{ "_id" : ObjectId("616699516fdede4580efd221"), "title" : "PHP 教程", "description" : "PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。", "by" : "菜鸟教程", "url" : "http://www.runoob.com", "tags" : [ "php" ], "likes" : 200 }
{ "_id" : ObjectId("616699626fdede4580efd222"), "title" : "Java 教程", "description" : "Java 是由Sun Microsystems公司于1995年5月推出的高级程序设计语言。", "by" : "菜鸟教程", "url" : "http://www.runoob.com", "tags" : [ "java" ], "likes" : 150 }
{ "_id" : ObjectId("6166996a6fdede4580efd223"), "title" : "MongoDB 教程", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "菜鸟教程", "url" : "http://www.runoob.com", "tags" : [ "mongodb" ], "likes" : 100 }

3、MongoDB (<) 小于操作符 - $lt

获取"col"集合中 “likes” 小于 150 的数据,可以使用以下命令:

>db.col.find({likes : {$lt : 150}})
\\类似于SQL语句:Select * from col where likes < 150

输出结果:

> db.col.find({likes : {$lt : 150}})
{ "_id" : ObjectId("6166996a6fdede4580efd223"), "title" : "MongoDB 教程", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "菜鸟教程", "url" : "http://www.runoob.com", "tags" : [ "mongodb" ], "likes" : 100 }

4、MongoDB (<=) 小于等于操作符 - $lte

获取"col"集合中 “likes” 小于等于 150 的数据,可以使用以下命令:

>db.col.find({likes : {$lte : 150}})
\\类似于SQL语句:Select * from col where likes <= 150

输出结果:

> db.col.find({likes : {$lte : 150}})
{ "_id" : ObjectId("616699626fdede4580efd222"), "title" : "Java 教程", "description" : "Java 是由Sun Microsystems公司于1995年5月推出的高级程序设计语言。", "by" : "菜鸟教程", "url" : "http://www.runoob.com", "tags" : [ "java" ], "likes" : 150 }
{ "_id" : ObjectId("6166996a6fdede4580efd223"), "title" : "MongoDB 教程", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "菜鸟教程", "url" : "http://www.runoob.com", "tags" : [ "mongodb" ], "likes" : 100 }

5、MongoDB (!=) 不等于操作符 - $ne

获取"col"集合中 “likes” 不等于 150 的数据,可以使用以下命令:

>db.col.find({likes : {$ne : 150}})
\\类似于SQL语句:Select * from col where likes != 150

输出结果:

> db.col.find({likes : {$ne : 150}})
{ "_id" : ObjectId("616699516fdede4580efd221"), "title" : "PHP 教程", "description" : "PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。", "by" : "菜鸟教程", "url" : "http://www.runoob.com", "tags" : [ "php" ], "likes" : 200 }
{ "_id" : ObjectId("6166996a6fdede4580efd223"), "title" : "MongoDB 教程", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "菜鸟教程", "url" : "http://www.runoob.com", "tags" : [ "mongodb" ], "likes" : 100 }

6、MongoDB (=) 等于操作符 - $eq

获取"col"集合中 “likes” 等于 150 的数据,可以使用以下命令:

>db.col.find({likes : {$eq : 150}})
\\类似于SQL语句:Select * from col where likes = 150

输出结果:

> db.col.find({likes : {$eq : 150}})
{ "_id" : ObjectId("616699626fdede4580efd222"), "title" : "Java 教程", "description" : "Java 是由Sun Microsystems公司于1995年5月推出的高级程序设计语言。", "by" : "菜鸟教程", "url" : "http://www.runoob.com", "tags" : [ "java" ], "likes" : 150 }

7、MongoDB 使用 (<) 和 (>) 查询 - $lt 和 $gt

获取"col"集合中 “likes” 大于100,小于 200 的数据,可以使用以下命令:

>db.col.find({likes : {$lt :200, $gt : 100}})
\\类似于SQL语句:Select * from col where likes>100 AND  likes<200

输出结果:

> db.col.find({likes : {$lt :200, $gt : 100}})
{ "_id" : ObjectId("616699626fdede4580efd222"), "title" : "Java 教程", "description" : "Java 是由Sun Microsystems公司于1995年5月推出的高级程序设计语言。", "by" : "菜鸟教程", "url" : "http://www.runoob.com", "tags" : [ "java" ], "likes" : 150 }

二、#type操作符

$type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果。
MongoDB 中可以使用的类型如下表所示:

类型数字备注
Double1
String2
Object3
Array4
Binary data5
Object id7
Boolean8
Date9
Null10
Regular Expression11
JavaScript13
Symbol14
JavaScript (with scope)15
32-bit integer16
Timestamp17
64-bit integer18
Min key255Query with -1
Max key127

实例:获取 “col” 集合中 title 为 String 的数据,可以使用以下命令:

db.col.find({"title" : {$type : 2}})
或
db.col.find({"title" : {$type : 'string'}})

输出结果:

> db.col.find({"title" : {$type : 2}})
{ "_id" : ObjectId("616699516fdede4580efd221"), "title" : "PHP 教程", "description" : "PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。", "by" : "菜鸟教程", "url" : "http://www.runoob.com", "tags" : [ "php" ], "likes" : 200 }
{ "_id" : ObjectId("616699626fdede4580efd222"), "title" : "Java 教程", "description" : "Java 是由Sun Microsystems公司于1995年5月推出的高级程序设计语言。", "by" : "菜鸟教程", "url" : "http://www.runoob.com", "tags" : [ "java" ], "likes" : 150 }
{ "_id" : ObjectId("6166996a6fdede4580efd223"), "title" : "MongoDB 教程", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "菜鸟教程", "url" : "http://www.runoob.com", "tags" : [ "mongodb" ], "likes" : 100 }

> db.col.find({"title" : {$type : 'string'}})
{ "_id" : ObjectId("616699516fdede4580efd221"), "title" : "PHP 教程", "description" : "PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。", "by" : "菜鸟教程", "url" : "http://www.runoob.com", "tags" : [ "php" ], "likes" : 200 }
{ "_id" : ObjectId("616699626fdede4580efd222"), "title" : "Java 教程", "description" : "Java 是由Sun Microsystems公司于1995年5月推出的高级程序设计语言。", "by" : "菜鸟教程", "url" : "http://www.runoob.com", "tags" : [ "java" ], "likes" : 150 }
{ "_id" : ObjectId("6166996a6fdede4580efd223"), "title" : "MongoDB 教程", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "菜鸟教程", "url" : "http://www.runoob.com", "tags" : [ "mongodb" ], "likes" : 100 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值