美文网首页
mongodb使用记录----查询文档

mongodb使用记录----查询文档

作者: 一缕清风一世情_百度 | 来源:发表于2020-04-15 14:26 被阅读0次

基础语法

db.collection.find(<query filter>, <projection>)

说明:
query filter: 查询条件,指名返回哪些文档;
projection: 指定返回文档的哪些字段;

示例

1.创建user集合并插入数据

db.user.insertMany(
  [
    {
      name: "name1",
      password: "123456",
      age: 24,
      role: 1,
      status: 1,
      avart: "name1-avart.png",
      badges: [
        "blue",
        "black"
      ],
      points: [
          { points: 85, bonus: 20 },
          { points: 85, bonus: 10 }
      ]
    },
    {
      name: "name2",
      password: "123456",
      age: 28,
      role: 2,
      status: 1,
      avart: "name2-avart.png",
      badges: [
        "red",
        "black"
      ],
      points: [
          { points: 60, bonus: 20 },
          { points: 85, bonus: 10 }
      ]
    }
  ]
)

2.查询

2.2 基础查询

查询返回全部用户数据

db.user.find({})

查询返回用户name字段为name1的数据

var filter_data = {
  name: "name1"
};
db.user.find(
  filter_data
)

多条件查询返回用户name字段为name1并且role为1的数据

var filter_data = {
  name: "name1",
  role: 1
};
db.user.find(
  filter_data
)

2.3 使用查询操作符指定条件

$in:查询数组中包含指定值

数组类型数据查询

var filter_data = {
  badges: {
    $in: ["red"]
  }
};
或者
var filter_data = {
  badges: {
    $in: "red"
  }
};
或者
var filter_data = {
  badges: "red"
};
db.user.find(
  filter_data
)

字符串类型数据查询

//多值查询:查询role为1或者2的数据
var filter_data = {
  role: {
    $in: [1,2]
  }
};
//单值查询:查询role为1的数据
var filter_data = {
  role: 1
};
db.user.find(
  filter_data
)

对象数组类型数据查询

//多值查询:查询points数组中points值为85或者60的数据
var filter_data = {
  'points.points':{
    $in: [85, 60]
  },
  bonus: 20
};
或者
var filter_data = {
  points: {
    $elemMatch: {
      points: {
        $in: [85, 60]
      },
      bonus: 20
    }
  }
};
//单值查询:查询points数组中points值为85的数据
var filter_data = {
  'points.points':85,
  'points.bonus':20,
};
或者
var filter_data = {
  points: {
    $elemMatch: {
      points: 85,
      bonus: 20
    }
  }
};
db.user.find(
  filter_data
)
$elemMatch: 为数组元素指定复合条件,以查询数组中至少一个元素满足所有指定条件的文档。

{ <field>: { $elemMatch: { <query1>, <query2>, ... } } }

$or: 指定一个使用逻辑 OR 连接词连接各子句的复合查询选择集合中匹配至少一个条件的文档。

{ $or: { <query1>, <query2>, ... } }

//查询status等于1或者age小于25的数据
var filter_data = {
  $or: [
    {
      status: 1,
    },
    {
      age: {
        $lt: 25
      },
    }
  ]
};
db.user.find(
  filter_data
)
$type: 类型筛查。

具体类型见:https://www.runoob.com/mongodb/mongodb-operators-type.html

//查询name字段类型为字符串的数据
var filter_data = {
    name: {
      $type: 2,
    },
};
db.user.find(
  filter_data
)
$exists: 存在性筛查。
//查询name字段存在的数据
var filter_data = {
    name: {
      $exists: true,
    },
};
db.user.find(
  filter_data
)

相关文章

  • mongodb使用记录----查询文档

    基础语法 db.collection.find( , ) 说明:query filter: 查询条件,指名返回哪...

  • spring date mongo mongotemplate使

    Spring数据MongoDB三:基本文档查询(查询,基本查询)(一) MongoDB高级查询[聚合] sprin...

  • mongo二2018-06-29

    MongoDB基础语法——查询数据 基本查询 find([{文档条件}]):全集合查询 findOne([{文档条...

  • MongoDB 对嵌套(Embedded)数组的过滤查询

    前言 MongoDB 推荐使用「内嵌文档(Embedded)」,所以带来一个问题,如何查询嵌入文档内的数据? 假如...

  • MongoDB基础之查询文档

    1 查询操作 1.1 定义 MongoDB 查询文档使用 find() 方法find() 方法以非结构化的方式来显...

  • MongoDB查询文档

    MongoDB 查询文档使用 find() 方法。find() 方法以非结构化的方式来显示所有文档。 db.col...

  • MongoDB相关操作

    使用mongo命令进入数据后再进行权限认证 查询集合的所有文档记录 查询特定条件的文档 删除集合里的所有文档记录

  • MongoDB - 文档查询

    1.基本查询 查询集合中所有文档 使用游标遍历集合 2.条件查询 2.1 条件查询支持按照指定的字段值精准匹配 2...

  • MongoDB 查询文档

    语法MongoDB 查询数据的语法格式如下: 该语句是查询collection中全部数据,效果和关系型数据库的语句...

  • MongoDB查询文档

    1.查询所有文档 语法:db.集合名字.find() 2.根据条件查找匹配的文档 语法:db.集合名字.find(...

网友评论

      本文标题:mongodb使用记录----查询文档

      本文链接:https://www.haomeiwen.com/subject/ieytvhtx.html