我有MongoDB文档,它有一个数组的键.我想判断数组中的第二个元素是否存在.如果存在,则返回文档,否则不返回任何文档.

example document :

{
 _id : "672d75267",
 name : "somename",
 arr : [1,2,3]
}


db.collection.aggregate([
 {
   $match : {
      $expr : {
        $arrayElemAt : ["$arr",2]
     }
   }
 }
])

推荐答案

Array index start from 0 that is why we have taken "arr.1"

db.collection.aggregate([
  {
    $match: {
      "arr.1": {
        "$exists": true
      }
    }
  },
])

Mongodb相关问答推荐

如何在MongoSH中的现有文档中插入字段

MongoDB - 将数组元素转换为新字段

MongoDB - 将对象转换为数组

MongoDB Aggregate 根据时间进行多重分组

Mongo $sort然后$group,顺序能保证吗?

避免在 MongoDB 聚合框架中使用 ISODate() 以便管道可以是纯 JSON

MongoDb c# driver LINQ vs Native 查询

MongoDB - 如果新值更大,则更新字段

在 Heroku 上使用 Node 读取、写入和存储 JSON

如何使用 c# 2.0 驱动程序将数据插入到 mongodb 集合中?

Mongoose 连接认证失败

无法从 MongoDb C# 中的 BsonType ObjectId 反序列化字符串

MongoDB 中的所有列

MongoDB - 文件大小巨大且不断增长

将 MongoCursor from ->find() 转换为数组

Java Mongodb 正则表达式查询

使用 $in 进行不区分大小写的搜索

如何使用户的邮箱在 mongoDB 中唯一?

findOneAndUpdate 中的文档未更新

MongoDB - $set 更新或推送数组元素