【问题标题】:mongodb Can't use $and with Stringmongodb 不能使用 $and 和字符串
【发布时间】:2019-03-21 12:16:02
【问题描述】:

我不是 mongodb 专家,所以我正在使用正则表达式解决搜索问题。

我的名为 Post 的文档的结构如下:

{
  _id : String,
  keywords : [{
    timesFound : Number,
    keyword : String
  }]
}

作为输入,我有一组潜在的关键字,例如:["apple","orange"]。 如何搜索匹配 /apple/i AND /orange/i 的所有文档?

我试过这样的查询:

{"keywords.keyword" : $and: [{$regex: /apple/i}, {$regex: /orange/i}]}}

但收到此错误“无法将 $and 与字符串一起使用。”

你有什么想法吗? 谢谢!!

【问题讨论】:

    标签: regex mongodb mongodb-query


    【解决方案1】:

    $and应该是顶级操作符,试试:

    Post.find({ $and: [ { "keywords.keyword": {$regex: /apple/i} }, { "keywords.keyword": {$regex: /orange/i} } ] })
    

    【讨论】:

    • 如果在另一个 $and 运算符中有 $and 运算符怎么办。我遇到了同样的错误,但有许多嵌套的 $and 运算符。
    • 可以像这样嵌套:{ $and: [ { $and: [...] }, { $or: [...] }] }
    • 我没有使用 $and 作为具有更多 $and 运算符的数组内的顶级运算符。这是造成问题的原因。非常感谢。
    猜你喜欢
    • 2016-07-03
    • 1970-01-01
    • 2015-04-13
    • 2013-10-13
    • 2013-12-26
    • 2014-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多