gpt4 book ai didi

javascript - $regex 如何在空值 Mongoose 中工作

转载 作者:行者123 更新时间:2023-12-04 08:41:39 25 4
gpt4 key购买 nike

我正在使用 $regex然而,在 Mongoose 中,它的行为有点令人困惑。
这是我的数据,我有一个文档,其中有一个属性“所有者”,如下所示。

{ "owner" : "lorem ipsum" }
现在当我使用 {owner: {$regex:"",$options:"i"}} 进行搜索时在 MongoDB 指南针中,它返回该对象,当我这样做时 {owner: ""} ,它什么都不返回。
所以有人可以向我解释为什么这种行为是这样的,虽然我在做 $regex 时没有空字符串作为所有者。它返回那个文件。
即使我试图将 lorem 和“epsum”之间的空格删除为“loremepsum”,但它具有相同的行为。它不应该返回与 {owner: ""} 相同的信息吗? ?

最佳答案

我无论如何都不是 Mongoose 专家,但听起来它的行为是正确的。
基本上,正则表达式 ""导致编译后的正则表达式看起来像 //这松散地翻译为“找不到我”。这个“无”存在于任何不存在的地方,所以“无”存在于诸如 l 之类的字符之间。和 olorem .
使用以下代码片段可以最好地将其可视化:

echo preg_replace( '//', '8', 'lorem ipsum' );
这导致:
8l8o8r8e8m8 8i8p8s8u8m8

所以 Mongoose 会做这样的事情:
var_dump( preg_match( '//', 'lorem ipsum' ) );
这导致成功找到“什么都没有”

相比之下 {owner: ""}将寻找缺乏所有者数据。

关于javascript - $regex 如何在空值 Mongoose 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64539569/

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