首页 > 解决方案 > 如何查询数组中的元素?

问题描述

如何查询数组中包含匹配不区分大小写名称的玩家的任何对象?db.collection.find(players.name: search)

这是如何存储数据的示例对象(我已删除与问题无关的所有字段)。

{ "_id" : ObjectId("5d67f29ae6504b451c3aca3e"), "players" : [
 { "name" : "Jenny"}, { "name" : "Benny"}, { "name" : "Kenny" } ] }

一种解决方案是仅遍历集合中的所有文档,然后依次遍历每个文档中的所有名称,但我试图避免这种情况。另一个可能是将名称映射到 objectIds?

标签: node.jsmongodb

解决方案


您可以使用正则表达式来执行此操作:

db.collection.find("players.name": {'$regex' : '^string$', '$options' : 'i'})


推荐阅读