0

基本上我正在浏览我的 mongodb 中的一个大型 yelp 数据库,我想找到所有带有短语 hotwings 和关键字折扣的评论。但是我无法创建正确的查询来查找评论中包含短语 hotwings 和关键字折扣的评论。

为了给你一些背景知识,我将 yelp review 的几个大型 json 文件导入到我在 ubuntu 上的 mongodb 数据库中。我想在属性下的“文本”和“酒精:full_bar”下查找关键字“UFC”,并至少返回它们的计数。因为我想看看提到 UFC 和 MMA 的酒吧是否比其他酒吧获得更多的评论、签到和提示,所以没有提到这些事情。

我已经在我的 mongodb 数据库中成功构建了这个索引:

> db.collection.createIndex({"text":"text", "attributes": "text"})
{
    "createdCollectionAutomatically" : false,
    "numIndexesBefore" : 1,
    "numIndexesAfter" : 2,
    "ok" : 1
}

这就是我所拥有的:

db.collection.find( { $text: { $search: "\"hot wings\" 'discount'" } } )

到目前为止,它只给了我带有热翅膀的评论,并在那里打折。有没有办法只显示包含短语 hotwing 和关键字折扣的评论?

有没有办法同时搜索多个短语和一个关键词?

4

1 回答 1

0

这应该工作:

db.collection.find({
$and: [
    {'text': {'$regex': 'hot wings'} },
    {'text': {'$regex': 'discount'} }
]})

您可以向 $and 数组添加更多短语。

于 2017-04-29T23:01:30.250 回答