神州浪子 2014-09-23 07:11 采纳率: 0%
浏览 1357

mongoDB中的数组,已知其中的值,如何查询相应下标?

我们知道mongoDB是可以根据下表查询相应的数组内容的,比如

find({key.下标值:值}) 

现在的问题是,我已经知道了值,想获取这个下标,mongoDB是否提供了相应的方法?

如果每次都要查询整个数组然后遍历才能确认下标,这个性能损耗实在太大……

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-02 18:24
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    MongoDB并不直接提供一个方法来查询特定索引下的值。但是,你可以使用$elemMatch$in操作符结合使用。

    首先,确保你的数据结构满足以下条件:

    var myArray = [
      { key: "value1", index: 0 },
      { key: "value2", index: 1 },
      // ... 其他元素...
    ];
    

    接下来,你可以在查询中添加$elemMatch$in操作符:

    db.collection.find({
      $and: [
        { key: "value" }, // 指定要匹配的关键字
        { _id: { $in: [0, 1] } } // 使用索引来指定元素的位置
      ]
    });
    

    在这个例子中,我们查找所有具有给定值的文档,并且这些文档在索引位置为0或1。这将返回与指定值匹配的所有元素。

    请注意,这种方法可能不适用于所有场景,特别是当数据结构非常复杂或者没有明确的索引时。在这种情况下,可能需要使用其他技术(如子查询)来实现相同的功能。

    评论

报告相同问题?