当前位置: 首页 > 知识库问答 >
问题:

array.indexOf()-包含给定值字段的文档[JavaScript][duplicate]

宇文迪
2023-03-14

如何获取数组中仅包含1个给定匹配key:value的文档索引?

例如,如果我的数组是

[
    { name: 'abc', age: 17 },
    { name: 'xyz', age: 18 },
    { name: 'pqr', age: 19 },
]

现在如何获得age:18的第一个文档的索引?

我试过了

list.indexOf({ age: 18 })

但这似乎不起作用,它给了我-1

共有1个答案

杨昊
2023-03-14

您可以使用数组#findindex

null

const arr = [
    { name: 'abc', age: 17 },
    { name: 'xyz', age: 18 },
    { name: 'pqr', age: 19 },
];
let idx = arr.findIndex(({age})=>age===18);
console.log(idx);
 类似资料:
  • 我正在尝试查找不包含至少一个具有特定字段值的文档的所有文档。例如,下面是一个示例集合: 我希望找到docs块中没有包含至少一个foo=1的记录的文档的每个记录。在上面的示例中,应该只返回第二个文档。 我还查看了$nin运算符,但示例只显示数组包含基元值列表时的情况,而不是附加文档。当我尝试使用类似于下面的东西来实现这一点时,它查找的是确切的文档,而不仅仅是我想要的foo字段。 有没有用基本运算符来

  • 问题内容: 我有以下模型: 我正在寻找一个查询,该查询检索不属于某个特定组的所有人员(即,人员的组数组不包含指定组的ID)。 我在考虑这样的事情,但是我不确定它是正确的: 问题答案: 基本的尝试没什么错,但是这里唯一的澄清可能是普遍的误解,即您需要像 或 查询数组时这样的运算符。 另外,您真的需要在这里做一个基本的不等式匹配 : “数组”运算符不用于“数组目标”,而是用于提供条件的“列表”以方便的

  • 问题内容: 我有一个与此类似的文件: 我要查询以查找所有包含“ a”的人(鲍勃和玛丽)。如何编写查询? 编辑: 当前查询: 问题答案: 在字段上使用术语过滤器/查询(例如)可以满足您的需求。假设您只想匹配满足该条件的任何文档,则完整查询将类似于: 之所以可行,是因为值数组是分别索引的,并且如果查询的字段是列表,则术语查询将查找包含包含该值的数组的文档。

  • 我试图在ElasticSearch中运行类似的字段查询:

  • 我有一个关于过滤特定字段不在值列表中的文档的问题。例如,文档只包含唯一且已索引的“_id”字段。现在我有一个“_id”列表,并想找出“_id”不在“_id”列表中的所有文档。 我可以通过使用$in运算符来实现,例如: 返回列表中ID的所有文档,然后与给定列表进行比较。这种方式的性能对于数千个文档来说还不够好。我想知道是否有更好的方法来做到这一点。例如,是否可以构造一个查询,只返回ID不在列表中的文