gpt4 book ai didi

MongoDb 查询 : checking if a string contains field value

转载 作者:行者123 更新时间:2023-12-05 02:16:56 26 4
gpt4 key购买 nike

我知道可以检查字段值是否像这样的字符串:

db.users.findOne({"username" : {$regex : ".*jo*"}});

但我想要的是检查字符串是否包含字段值。
如果我有这样的字符串:"John, Smith, ",我想匹配用户名为 "John""Smith" 的用户.

我知道可以拆分字符串并使用 $in 运算符,但想知道是否可以使用字符串比较轻松完成。

最佳答案

如果我正确理解了你的问题,我相信下面的 $regex 就是你想要的。

我的收藏看起来像这样:

/* 1 */
{
"_id" : ObjectId("5a8498a29d1ed018c7f648ca"),
"name" : "John, Smith, "
}

查找和 $regex 看起来像:

db.foo.find({ name: { $regex: 'John.*Smith' } }, { _id : 0 })

如果您需要不区分大小写:

db.foo.find({ name: { $regex: 'john.*smith', $options: 'i'} }, { _id : 0 })

输出:

/* 1 */
{
"name" : "John, Smith, "
}

如果我要运行:

db.foo.find( { name: { $regex: 'Bill.*Smith', $options: 'i' }}, { _id : 0})

db.foo.find( { name: { $regex: 'John.*Bill', $options: 'i' } }, { _id : 0})

输出:

Fetched 0 record(s) in 1ms

所以 $regex 只会在 JohnSmith 在字段中时返回匹配项。

详细说明实际的 $regex 本身:

. 匹配除换行符以外的任何单个字符

* 匹配前面的表达式0次或多次

$option i 不区分大小写

关于MongoDb 查询 : checking if a string contains field value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48782040/

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