0
点赞
收藏
分享

微信扫一扫

MongoDB中查询命令

蚁族的乐土 2024-01-03 阅读 50
  1. 基础查询
db.collection.find({})  // 查询集合中的所有文档
  1. 条件查询
db.collection.find({ field: value })  // 查询field字段值为value的文档
  1. 比较查询

    • $eq:等于
    • $ne:不等于
    • $gt:大于
    • $gte:大于或等于
    • $lt:小于
    • $lte:小于或等于
db.collection.find({ age: { $gt: 20 } })  // 查询age字段大于20的文档
  1. 逻辑查询

    • $and:与
    • $or:或
    • $not:非
db.collection.find({ $and: [{ name: "John" }, { age: { $gt: 20 } }] })  // 查询name为John且age大于20的文档
  1. 正则查询
db.collection.find({ name: { $regex: /pattern/ } })  // 查询name字段匹配正则表达式pattern的文档
  1. 数组查询

    • $in:在...中
    • $all:所有...
    • $size:大小为...
db.collection.find({ hobbies: { $in: ["reading", "music"] } })  // 查询hobbies字段包含reading或music的文档
  1. 查询嵌套对象和数组: 使用点符号.来访问嵌套的字段。如果要匹配数组中的元素,可以使用数组索引。
db.collection.find({ "address.city": "New York" })  // 查询address字段中city子字段为New York的文档
db.collection.find({ "grades.1": "A" })  // 查询grades数组中第二个元素为A的文档,注意索引从0开始。
  1. 使用投影限制返回的字段: 在find()方法中,可以通过第二个参数指定要返回的字段。使用1表示包含该字段,0表示不包含。
db.collection.find({}, { name: 1, _id: 0 })  // 只返回name字段,不返回_id字段(默认包含)
  1. 排序、跳过和限制: 使用sort(), skip(), 和 limit()方法来对查询结果进行进一步处理。
db.collection.find().sort({ age: 1 }).skip(10).limit(5)  // 按age升序排序,跳过前10个结果,返回接下来的5个结果。
  1. 使用聚合管道进行更复杂的操作$group, $match, $sort等。这部分内容较为复杂,可以查阅MongoDB官方文档了解更多关于聚合管道的使用方法。
举报

相关推荐

0 条评论