【问题标题】:MongoDB find by matching two concatened fields?MongoDB 通过匹配两个连接字段来查找?
【发布时间】:2012-03-02 13:57:10
【问题描述】:

我有一个包含名字和姓氏字段的 MongoDB 集合,我需要检索与特定全名匹配的项目:

有没有一种简单的方法可以编写一个查询来检查:

firstName + " " + lastName IN ARRAY ()... ?

--- 编辑 ---

连接的原因是,如果我有 [bill, steve] 为 firstNames 和 [gates, jobs] 为姓氏,我不希望结果中出现账单作业(考虑到它存在)。

谢谢!

【问题讨论】:

  • 您的输入是一个名字数组和一个姓氏数组?你按数组中的位置加入它们?如果是,我会更新我的答案,但这仍然是你应该用你的输入做的事情,而不是在 MongoDb 中。

标签: mongodb


【解决方案1】:

当然你只是想要:

db.myCollection.find({firstName:"bill",lastName:"gates"})

或者是否有具体的实际连接的原因?

【讨论】:

  • 连接的原因是,如果我有 [bill, steve] for firstNames 和 [gates, jobs] for lastname,我不希望结果中出现账单作业(考虑到它存在)。跨度>
【解决方案2】:

听起来您将连接字段作为输入。如果是这种情况,最好将输入数据拆分为您使用的任何语言并将单独的字段传递给 MongoDB。

var names = "bill gates".split();
db.myCollection.find({firstName:names[0],lastName:names[1]});

如果定义了索引,这也将允许 MongoDB 使用索引。

【讨论】:

  • 我没有连接字段作为我的输入,更新了 q 使其更清晰。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-21
  • 1970-01-01
  • 2020-12-10
  • 2012-09-28
  • 1970-01-01
  • 1970-01-01
  • 2020-09-20
相关资源
最近更新 更多