繁体   English   中英

mongodb - 按字段名的值查询文档

[英]mongodb - query documents by value of field name

鉴于我在User集合中有这些文档:

{
  userId: "user-a",
  points: {
    date: {
      1: 100,
      5: 20,
      11: 65,
    },
  },
}

{
  userId: "user-b",
  points: {
    date: {
      31: 20,
      25: 40,
      11: 15,
    },
  },
}

我想要做的是我想用points.date.[number]查询用户points.date.[number]值存在, [number] <7例如。 我怎样才能做到这一点 ?

由于您的密钥未知,您必须使用$objectToArray聚合将它们转换为某个键值对,然后可以轻松地与它$match

db.collection.aggregate([
  { "$match": { "points.date[number]": { "$exists": true }}},
  { "$addFields": {
    "match": {
      "$objectToArray": "$points.date"
    }
  }},
  { "$match": { "match.k": { "$lt": "7" }}},
  { "$project": { "match": 0 }}
])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM