等效的 MongoDB 语句?

Posted

技术标签:

【中文标题】等效的 MongoDB 语句?【英文标题】:equivalent MongoDB statement? 【发布时间】:2018-11-12 22:19:18 【问题描述】:

我是 MongoDB 新手,想知道如何构建与以下 SQL 语句等效的语句:

SELECT * FROM users WHERE CONCAT(firstName, ' ', lastName) LIKE CONCAT('Walter Whi', '%')

【问题讨论】:

似乎,mongos 文本搜索就是我要搜索的内容.. 【参考方案1】:

SQL 中的 CONCAT 相当于 MongoDB 中的聚合方法。 SQL 中的表相当于 MongoDB 中的文档。 SQL 中的 SELECT 相当于 MongoDB 中的 Projection 方法。

db.users.aggregate([ $project: userDescription: $concat: [ "$firstName", " - ", "$lastName" ] , $match : $firstName: "Walter Whi" ])

有关详细信息,请参阅此文档。 https://docs.mongodb.com/manual/reference/operator/aggregation/match/

【讨论】:

【参考方案2】:

你可以找到这样的例子

db.users.insert(name: 'paulo')
db.users.insert(name: 'patric')
db.users.insert(name: 'pedro')

db.users.find(name: /a/)  //like '%a%' out: paulo, patric
db.users.find(name: /^pa/) //like 'pa%' out: paulo, patric
db.users.find(name: /ro$/) //like '%ro'
db.students.aggregate(      
  $project: studentNo:"$studentNo" , name:  $concat: [ "$firstName", " ", "$lastName" ] ,age:"$age",
  $match: "name":/Suraj/)

project 用于列出所有列并连接两列,然后搜索新记录

聚合是 MongoDB 中的一种方式,我们可以在其中添加子句,例如 SQL 中的 where、have。

如需了解更多,可以参考 点击here

【讨论】:

以上是关于等效的 MongoDB 语句?的主要内容,如果未能解决你的问题,请参考以下文章

从 mysql 到 mongodb 的等效查询

MongoDB中SQL中减集操作的等效操作是啥?

mongodb中sails“包含”的等效查询是啥?

春季是不是有 mongoDB 的 @MappedSuperclass 等效注释?

nodejs-native-mongodb 的 runCommand 等效项

重复字符串上的 SQL 等效“$all”MongoDB 运算符