MongoDB条件查询

MongoDB条件查询

MongoDB条件查询

在MongoDB中,条件查询是我们经常用到的操作之一。通过条件查询,我们可以根据指定的条件从集合中筛选出符合条件的文档。在本文中,我们将深入探讨MongoDB中的条件查询,介绍常用的查询操作符,并通过示例演示如何进行条件查询。

查询操作符

MongoDB提供了丰富的查询操作符,用于在条件查询中指定条件。常用的查询操作符包括:

  • $eq: 等于
  • $ne: 不等于
  • $gt: 大于
  • $gte: 大于等于
  • $lt: 小于
  • $lte: 小于等于
  • $in: 在指定范围内
  • $nin: 不在指定范围内
  • $or: 或
  • $and: 与
  • $not: 非
  • $regex: 正则表达式匹配

示例数据

在本文中,我们将使用如下示例数据进行演示:

{
   "_id": 1,
   "name": "Alice",
   "age": 25,
   "gender": "female"
},
{
   "_id": 2,
   "name": "Bob",
   "age": 30,
   "gender": "male"
},
{
   "_id": 3,
   "name": "Charlie",
   "age": 22,
   "gender": "male"
},
{
   "_id": 4,
   "name": "David",
   "age": 35,
   "gender": "male"
},
{
   "_id": 5,
   "name": "Eve",
   "age": 28,
   "gender": "female"
}

等于查询($eq)

等于查询用于筛选字段值等于指定值的文档。例如,我们希望查询年龄等于25岁的文档:

db.users.find({ age: { $eq: 25 } })

查询结果为:

{
   "_id": 1,
   "name": "Alice",
   "age": 25,
   "gender": "female"
}

不等于查询($ne)

不等于查询用于筛选字段值不等于指定值的文档。例如,我们希望查询年龄不等于30岁的文档:

db.users.find({ age: { $ne: 30 } })

查询结果为:

{
   "_id": 1,
   "name": "Alice",
   "age": 25,
   "gender": "female"
},
{
   "_id": 3,
   "name": "Charlie",
   "age": 22,
   "gender": "male"
},
{
   "_id": 5,
   "name": "Eve",
   "age": 28,
   "gender": "female"
}

大于查询($gt)

大于查询用于筛选字段值大于指定值的文档。例如,我们希望查询年龄大于25岁的文档:

db.users.find({ age: { $gt: 25 } })

查询结果为:

{
   "_id": 2,
   "name": "Bob",
   "age": 30,
   "gender": "male"
},
{
   "_id": 4,
   "name": "David",
   "age": 35,
   "gender": "male"
},
{
   "_id": 5,
   "name": "Eve",
   "age": 28,
   "gender": "female"
}

大于等于查询($gte)

大于等于查询用于筛选字段值大于等于指定值的文档。例如,我们希望查询年龄大于等于30岁的文档:

db.users.find({ age: { $gte: 30 } })

查询结果为:

{
   "_id": 2,
   "name": "Bob",
   "age": 30,
   "gender": "male"
},
{
   "_id": 4,
   "name": "David",
   "age": 35,
   "gender": "male"
}

小于查询($lt)

小于查询用于筛选字段值小于指定值的文档。例如,我们希望查询年龄小于30岁的文档:

db.users.find({ age: { $lt: 30 } })

查询结果为:

{
   "_id": 1,
   "name": "Alice",
   "age": 25,
   "gender": "female"
},
{
   "_id": 3,
   "name": "Charlie",
   "age": 22,
   "gender": "male"
}

小于等于查询($lte)

小于等于查询用于筛选字段值小于等于指定值的文档。例如,我们希望查询年龄小于等于25岁的文档:

db.users.find({ age: { $lte: 25 } })

查询结果为:

{
   "_id": 1,
   "name": "Alice",
   "age": 25,
   "gender": "female"
},
{
   "_id": 3,
   "name": "Charlie",
   "age": 22,
   "gender": "male"
}

在指定范围内查询($in)

在指定范围内查询用于筛选字段值在指定范围内的文档。例如,我们希望查询年龄在25岁和30岁之间的文档:

db.users.find({ age: { $in: [25, 30] } })

查询结果为:

{
   "_id": 1,
   "name": "Alice",
   "age": 25,
   "gender": "female"
},
{
   "_id": 2,
   "name": "Bob",
   "age": 30,
   "gender": "male"
}

不在指定范围内查询($nin)

不在指定范围内查询用于筛选字段值不在指定范围内的文档。例如,我们希望查询年龄不在25岁和30岁之间的文档:

db.users.find({ age: { $nin: [25, 30] } })

查询结果为:

{
   "_id": 3,
   "name": "Charlie",
   "age": 22,
   "gender": "male"
},
{
   "_id": 4,
   "name": "David",
   "age": 35,
   "gender": "male"
},
{
   "_id": 5,
   "name": "Eve",
   "age": 28,
   "gender": "female"
}

或查询($or)

或查询用于筛选满足任一条件的文档。例如,我们希望查询年龄等于25岁或30岁的文档:

db.users.find({ $or: [{ age: 25 }, { age: 30 }] })

查询结果为:

{
   "_id": 1,
   "name": "Alice",
   "age": 25,
   "gender": "female"
},
{
   "_id": 2,
   "name": "Bob",
   "age": 30,
   "gender": "male"
}

与查询($and)

与查询用于筛选满足所有条件的文档。例如,我们希望查询年龄大于等于25岁且性别为女性的文档:

db.users.find({ and: [{ age: {gte: 25 } }, { gender: "female" }] })

查询结果为:

{
   "_id": 1,
   "name": "Alice",
   "age": 25,
   "gender": "female"
}

非查询($not)

非查询用于筛选不满足指定条件的文档。例如,我们希望查询年龄不等于25岁的文档:

db.users.find({ age: { not: {eq: 25 } } })

查询结果为:

{
   "_id": 2,
   "name": "Bob",
   "age": 30,
   "gender": "male"
},
{
   "_id": 3,
   "name": "Charlie",
   "age": 22,
   "gender": "male"
},
{
   "_id": 4,
   "name": "David",
   "age": 35,
   "gender": "male"
},
{
   "_id": 5,
   "name": "Eve",
   "age": 28,
   "gender": "female"
}

正则表达式匹配查询($regex)

正则表达式匹配查询用于根据正则表达式来匹配字段值。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程