You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

技术问询:字符串包含匹配时DB数据获取及JS location字段取值问题

嘿,我来帮你搞定这两个问题:

问题1:当字符串包含另一个字符串时,从数据库获取对应数据

不同数据库的查询语法略有差异,我给你列两个最常用的场景:

  • MySQL/PostgreSQL等关系型数据库:使用LIKE操作符配合通配符%(匹配任意长度的字符)。比如要查询title字段包含“前端”的jobs数据,SQL语句可以这么写:

    SELECT * FROM jobs WHERE title LIKE '%前端%';
    

    注意%的位置:匹配以指定字符串开头的内容用'前缀%',匹配结尾用'%后缀',匹配包含则前后都加%。

  • MongoDB等NoSQL数据库:使用$regex操作符实现模糊匹配。如果用Mongoose查询,代码大概是这样:

    const jobs = await Job.find({ title: { $regex: '前端', $options: 'i' } });
    

    这里$options: 'i'表示忽略大小写,不需要的话可以去掉这个参数。

问题2:JavaScript解构嵌套对象字段失败的问题

从你给出的数据库结构来看,address、city、postcode应该是嵌套在location对象里的对吧?你现在的解构是直接从顶层拿这三个字段,当然会出问题——它们根本不在顶层层级!

正确的做法是先提取location对象,再从里面解构出目标字段,修改后的代码如下:

const { 
  title, 
  avatar, 
  company, 
  postDate, 
  jobType, 
  payment, 
  duration, 
  description,
  location: { address, city, postcode } // 改成嵌套解构
} = this.props.navigation.state.params;

如果location有可能是undefined,为了避免报错,还可以给它加个默认空对象:

const { 
  // 其他字段...
  location: { address, city, postcode } = {} // 给location设置默认值
} = this.props.navigation.state.params;

内容的提问来源于stack exchange,提问作者Markus Hayner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:54:07