- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我试图在 Java 中为 MongoDB 构建查询,但每次运行查询时都会遇到此错误“无法规范化查询:BadValue 文本表达式过多”。
数据库中充满了具有文本属性的文档,这些文档被索引用于全文搜索。我正在尝试构建一个查询以查找与 queryList 中的一个或多个查询匹配并且在特定时间范围内的任何文档。如果 queryList 中只有一个查询,它工作正常,否则失败。
有什么想法吗?
BasicDBList queryList = new BasicDBList();
for(String queryString : queryStrings)
{
queryList.add(new BasicDBObject("$text", new BasicDBObject("$search", queryString)));
}
BasicDBObject queries = new BasicDBObject("$or", queryList);
DBObject query = QueryBuilder.start()
.and(endpointQuery,
QueryBuilder.start().put("time").greaterThan(minTime).get(),
QueryBuilder.start().put("time").lessThan(maxTime).get())
.get();
DBCursor cursor = tweets.find(query);
最佳答案
错误非常准确。您要做的是在 $or
中创建“多个文本查询”健康)状况。 MongoDB 无法做到这一点,事实上它在 Restrictions 的第一行中有说明。在 $text
的手册页中.
此外,您不应该这样做,而是在您的集合中指定一个文本索引以在需要时搜索多个字段:
db.collection.ensureIndex({ "comments": "text", "title": "text" })
然后您可能想要分配权重 as shown here .
但似乎您真正要问的只是搜索“多个术语”。因此,您不为此使用 $ 或
,而只需提交以空格分隔的术语列表:
db.collection.find({ "$text": { "$search": "something else" } })
然后在文本索引中的任何字段的上下文中搜索空格分隔列表中的任何单词,并且将返回包含“任何”这些单词的任何文档。结果按该列表中单词的更多匹配项的“权重”排序。
关于MongoDB 无法规范化查询 : BadValue Too many text expressions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29020211/
发行:。我想在外置显示器(Lenovo Thinkvision E27q-20 27)上添加新的分辨率(2560X1440)。可用的最高分辨率为1920x1080。尝试输出添加的新模式时出错。。采取的
该集合有一个文档: { "_id" : ObjectId("54b513933aca242d9915a787"), "carriers" : [ {
数据如下: { "_id" : { "$oid" : "546b79a2e4b0f7bfbaa97cc7" }, "title" : "Eyewitness: Highlands, S
一些文档包含一个名为 status 的字段,其值为 404。我不想返回这些文件,所以我使用 $not 运算符: query = { "venue_id": venue_id, "sta
我是使用 CakePHP 的 MongoDB 新手。 当我编写以下查询时,它会执行得很好。 db.testData.find() { "_id" : ObjectId("53d1f79db81
我试图在 Java 中为 MongoDB 构建查询,但每次运行查询时都会遇到此错误“无法规范化查询:BadValue 文本表达式过多”。 数据库中充满了具有文本属性的文档,这些文档被索引用于全文搜索。
https://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#findOne 说明 max 选项将与数字一起使用。 var
我在 2dsphere 上索引了字段 loc,但无法对 Point 类型的 GeoJson 数据运行 geowithin 查询。 这里是查询: db.test.find( { loc :
这在 2.6.1 中发生在我身上 - 所以,如果有人陷入这个错误,我想我会写出答案。 第一个命令运行良好,但第二个却不行。 db.test.find({$text: {$search: 'york'}
晚上好, 我一直忙于 Mongoosejs + Node.js,目前遇到以下错误。 [Login-01][ERROR] MongoError: Can't canonicalize query: Ba
我正在尝试编译并运行此C++代码 #include void displayMe(void) { glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_P
也许这只是我的愚蠢,但我相信这应该有效。 #include #include struct Display { SDL_Window* window; SDL_GLContext co
MongoError:无法规范化查询:BadValue 不支持的投影选项:$inc:{ count:1 } var totalActiveUser = (req, res, next) => { To
我将 Meteor 与 WireTiger 3.2.12 一起使用 我使用 monogdump 制作了转储当我尝试恢复它时,在一些文件上我收到了这个: error: write to oplog fa
我正在使用 MGO 与 mongodb 进行通信。我想在一个集合中搜索,并按搜索分数对结果进行排序。 collection.Find(bson.M{ "$text": bson.M{"$sea
我正在使用以下代码为一些集成测试创建一个假窗口: class CXWindowsClipboardTests { protected: virtual void SetUp()
用户架构 var UserSchema = new Schema({ name: String, username: { type: String, required: true, i
这个查询有什么问题?我试图在 mongodb 服务器上运行它并收到如下错误 - “异常:错误查询:BadValue 未知顶级运算符:$gte”。谁能告诉我这有什么问题吗? db.sco
当我运行 mongo 时,我收到警告: Failed global initialization: BadValue Invalid or no user locale set. Please ens
我构建了一个将推文存储到 MongoDB 中的 Twitter 抓取工具。现在我正在尝试使用 PyMongo 查询数据。 在我的 MongoDB 中存储的数据: { "_id": {
我是一名优秀的程序员,十分优秀!