【问题标题】:how do i query in mongo db using like operator [duplicate]我如何使用like运算符在mongo db中查询[重复]
【发布时间】:2017-03-25 07:24:15
【问题描述】:

我想使用like 运算符查询基于date(11/11/2016) 的内容:

如何在 mongodb 中做同样的事情?

db.getCollection('TableName').find({"Date":/.*10/11/2016.*/})

我尝试了这个查询,但得到了invalid result

【问题讨论】:

  • 日期是否存储为字符串?
  • 是的 lakshmipriya。得到了刚刚尝试使用此查询的结果 db.getCollection('TableName').find({"Date":/.*11\/11\/2016 .*/})

标签: mongodb mongodb-query


【解决方案1】:

mongo中没有like,可以使用regex 在这种情况下,您不需要正则表达式,您可以使用简单的查找查询获得结果,存储在 mongodb 中的日期为 ISO 甲酸盐,因此首先将您的日期转换为 ISO date,然后查找例如

var convertDate = "11/11/2016";
convertDate  = new Date(11/11/2016);
db.getCollection('TableName').find({date : convertDate})

或者,如果您想在 mongo 中使用 like,请使用此

1)直接搜索

db.getCollection('TableName').find({date : {$regex : "11/11/2016"}})

2) 在日期上创建文本索引,然后搜索

db.getCollection('TableName').find({$text:{$search:"11/11/2016"}})

【讨论】:

    【解决方案2】:

    当您有 / 的值时,可以通过 . 完成 Mongodb 中的 Like/Regex。

    要获取以10/11/ 开头的日期,请尝试以下查询:

    db.getCollection('TableName').find({'Date':/^10.11./})
    

    【讨论】:

      猜你喜欢
      • 2011-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-14
      • 2019-05-13
      • 1970-01-01
      • 2021-09-05
      相关资源
      最近更新 更多