Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 具有与此正则表达式查询匹配的示例文档_Mongodb - Fatal编程技术网

Mongodb 具有与此正则表达式查询匹配的示例文档

Mongodb 具有与此正则表达式查询匹配的示例文档,mongodb,Mongodb,所以我读了Kyle的书,遇到了这个例子,他用正则表达式匹配一些文本: db.reviews.find({ user_id: ObjectId("4c4b1476238d3b4dd5000001"), text: /best|worst/i }) 但是它没有一个示例文档,所以我无法想象他在这个示例中使用的文档是如何构造的。那么你能不能画一个快速的文档,上面的正则表达式可以在上面工作? 据我所知,它当然有一个_id键和一个文本键,但是这个文本键的值是什么样的呢 谢谢。想象一下,其他

所以我读了Kyle的书,遇到了这个例子,他用正则表达式匹配一些文本:

db.reviews.find({
    user_id: ObjectId("4c4b1476238d3b4dd5000001"),
    text: /best|worst/i
})
但是它没有一个示例文档,所以我无法想象他在这个示例中使用的文档是如何构造的。那么你能不能画一个快速的文档,上面的正则表达式可以在上面工作? 据我所知,它当然有一个_id键和一个文本键,但是这个文本键的值是什么样的呢


谢谢。

想象一下,其他地方有一个用户集合,这是每个用户写过的所有评论的集合。当您想获得某个特定用户的所有评论时,您需要查询与该用户id匹配的所有评论-这就是用户id部分。现在你决定你只想要最好或最差的评论(不管大小写)。这是查询的第二部分

假设下面的三个文档都有匹配的用户id,那么第一个和第三个将匹配文本查询,但中间的一个不会匹配

{
   user_id: ObjectId(),
   text : "This was the worst one of my life!"
}

{

   user_id: ObjectId(),
   text : "Totally awesome, couldn't be better!"
}

{
   user_id: ObjectId(),
   text : "BEST EVAH!"
}

文本
可能是评论(就像在餐厅评论中一样),用户id可能是评论。是的,但我想知道text key的值是什么样子的?这是否像评论家写的一个完整的句子,比如“这是有史以来最糟糕的食物”,而这个正则表达式在整个句子中找到了“最糟糕”这个词,还是什么?谢谢Asya,这很强大。现在的问题是,如果文本块像45兆字节的文本,那么这种文本搜索的性能如何?不推荐做这样的事?在这种情况下,您会推荐什么?MongoDB文档大小限制为16MB,但这不是重点-问题是,如果您有很多文档,即使在短文本字段上,这也是一个缓慢的查询。您可以使用索引进行这种类型的文本搜索。对于这类问题,可能有更好(更专业)的解决方案。