微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Mongodb查找文档值是否以子字符串形式存在

如何解决Mongodb查找文档值是否以子字符串形式存在

我有一个ORDERS集合,就像:

_id:5f8e7d8084378609b2dca93f
user_id:"5f8465a777b1814c588521e2"
price:96
city:"Mumbai"
totalCost:96

_id:5f8e7d8084378609b2dca93f
user_id:"5f8465a777b1814c588521e2"
price:96
city:"Delhi"
totalCost:96

然后在我的api中我有类似的数据

 cityInorder='Mumbai City'

那么我如何从我的ORDER集合中找出所有以order.city作为“ cityInorder”中子字符串的订单

这意味着在我的第一个收集城市是“孟买”,所以我收到的数据是“孟买市”,所以我应该退回该文件

我尝试过

db.collection('orders').find({
  city: {
    $regex: cityInorder
  }
})

但似乎这与:(相反,也应该不区分大小写

解决方法

有几个问题。

  1. 您在需要搜索用例的地方使用regex选项。
  2. 您期望搜索不区分大小写。

您可以做几件事。

  1. 如果您需要搜索用例并且正在使用图集,则可以使用图集的search功能。

  2. 如果没有地图集,并且需要符合此条件,则可以执行以下操作。

您可以使用正则表达式的i选项以避免区分大小写。 您必须按空格分隔输入单词,并发出or请求以匹配Mumbaicity

Trial demo

我建议使用选项1。如果仅是城市,并且始终需要匹配第一个术语,则可以尝试使用第二个选项,其中涉及一些技巧。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。