gpt4 book ai didi

javascript - MongoDB:$or 一个全文搜索和一个 $in

转载 作者:数据小太阳 更新时间:2023-10-29 03:52:00 26 4
gpt4 key购买 nike

问题

嗨。我遇到了一个在我看来很奇怪的问题,我对此不知所措:

让我们来看看:

tags   = [ ObjectId('a'), ObjectId('b') ]
search = { $search: 'abc' }

现在下面的查询工作正常:

db.entries.find({ $or: [ {$text:search} ] })

还有这个:

db.entries.find({ $or: [ {tags:{$in:tags}} ] })

但是把它们结合起来:

db.entries.find({ $or: [ {$text:search}, {tags:{$in:tags}} ] })

我收到以下错误:

Unable to execute query: error processing query: ns=db.entries
Tree:
$or
tags $in [ ObjectId('a'), ObjectId('b') ]
TEXT : query=abc, language=, tag=NULL
Sort: {}
Proj: {}
No query solutions

元数据

  • 我使用的是 MongoDB 版本 2.6.4
  • 将任一条件与一个简单的 {_id:"c"} 表达式结合起来效果很好。
  • 我的文本索引设置正确。
  • 条件在 $or 数组中出现的顺序不会影响结果。

我的问题

帮助? :(

最佳答案

在稍微不同的环境下运行查询会产生更明显的错误:

Runner error: BadValue error processing query: ns=webistor.entries limit=0 skip=0
Tree: $or
tags $in [ ObjectId('a') ObjectId('b') ]
TEXT : query=abc, language=, tag=NULL
Sort: {}
Proj: {}

planner returned error: Failed to produce a solution for TEXT under OR - other non-TEXT clauses under OR have to be indexed as well.

注意

Other non-TEXT clauses under OR have to be indexed as well

显然,我必须向 tags 添加索引。

关于javascript - MongoDB:$or 一个全文搜索和一个 $in,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26116182/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com