node.js - 如何查询数组中的元素?
问题描述
如何查询数组中包含匹配不区分大小写名称的玩家的任何对象?db.collection.find(players.name: search)
这是如何存储数据的示例对象(我已删除与问题无关的所有字段)。
{ "_id" : ObjectId("5d67f29ae6504b451c3aca3e"), "players" : [
{ "name" : "Jenny"}, { "name" : "Benny"}, { "name" : "Kenny" } ] }
一种解决方案是仅遍历集合中的所有文档,然后依次遍历每个文档中的所有名称,但我试图避免这种情况。另一个可能是将名称映射到 objectIds?
解决方案
您可以使用正则表达式来执行此操作:
db.collection.find("players.name": {'$regex' : '^string$', '$options' : 'i'})
推荐阅读
- android - 如何将 React Native 应用程序中的通知图标用于某些 RNBridge?
- python - 读取 json 键值作为不敏感键
- c++ - 初始化动态数组
- aem - 根据 AEM 中的浏览器有条件地包含不同的客户端库?
- python - Chrome 不加载配置文件
- mysql - MYSQL按同一工作日比较上一年
- c - 如何重置静态变量或如何为二叉树创建 get_length 函数?
- html - 如何水平排列 HTML 元素?
- layout - AndroidX 是否仍然允许RelativeLayout?
- python - sklearn 在插补期间向测试数据集添加行的迭代插补