mongodb - Mongo DB搜索查询不给出结果
问题描述
db.feedback.find({
"$or":[
{"template_id":{"$regex":".*22532.*","$options":"i"}},
{"user_id":{"$regex":".*22532.*","$options":"i"}}
]
})
template_id
是一个字符串,user_id
是 NumberLong 数据类型,它没有找到结果。如果我输入正确的值,它的给出结果template_id
,只有 user_id 列似乎没有响应,有什么想法吗?
样本数据
{ "_id" : ObjectId("5ef21b7de21f8756b67da6e7"), "action_monkey" : 0, "feedback" : false, "more_feedback" : 0, "template_id" : "M23G5RK", "user_id" : 23423 }, /* 2 createdAt:6/15/2020, 3:16:53 PM*/ { "_id" : ObjectId("5ee74a95ae8ac276076db26a"), "action_monkey" : 0, "feedback" : false, "more_feedback" : 0, "template_id" : "M23G5RK", "user_id" : 23375 }, /* 3 createdAt:6/15/2020, 5:55:22 AM*/ { "_id" : ObjectId("5ee6c6faae8ac276076db24b"), "action_monkey" : 0, "feedback" : false, "more_feedback" : 0, "template_id" : "M23G5RK", "user_id" : 23423 }
解决方案
我对查询没有任何问题。
当您使用$or条件时,任何一种条件都应该为真。
我已经尝试过您的查询,您传递.*22532.*
的值既不是 intemplate_id
也不是 in user_id
。因此,您没有获得任何数据。
请尝试以下查询
询问:
db.getCollection('test1').find(
{ "$or":[
{"template_id":{"$regex":".*M23.*","$options":"i"}},
{"user_id":{"$regex":".*23.*","$options":"i"}
}]
})
结果来得很完美。
结果:
/* 1 */
{
"_id" : ObjectId("5ef21b7de21f8756b67da6e7"),
"action_monkey" : 0,
"feedback" : false,
"more_feedback" : 0,
"template_id" : "M23G5RK",
"user_id" : 23423
}
/* 2 */
{
"_id" : ObjectId("5ee74a95ae8ac276076db26a"),
"action_monkey" : 0,
"feedback" : false,
"more_feedback" : 0,
"template_id" : "M23G5RK",
"user_id" : 23375
}
/* 3 */
{
"_id" : ObjectId("5ee6c6faae8ac276076db24b"),
"action_monkey" : 0,
"feedback" : false,
"more_feedback" : 0,
"template_id" : "M23G5RK",
"user_id" : 23423
}
===== 编辑:=====
与user_id
整数值一样,正常的正则表达式过滤器不适用于整数值。因此,我们将整数值转换为字符串以应用正则表达式过滤器。
db.getCollection('test1').aggregate([
{ "$project": {
"user_id_s": { "$toLower": "$user_id" },
"document": "$$ROOT"
}
},
{ "$match": {
"$or":[
{"document.template_id":{"$regex":".*M23123.*","$options":"i"}},
{"user_id_s":{"$regex":".*23.*","$options":"i"}}
]
}},
{
"$replaceRoot": {
newRoot: "$document"
}
}
])
推荐阅读
- asp.net-mvc - 如何使用 Url.Action 获取带有附加参数的当前 url
- html - 无法隐藏带有 z-index 的链接
- python - PyQt5 / PySide2 代码只执行使用 ascii 字符的作品
- python - 生成一个由 N 个随机整数组成的数组,介于 1 和 K 之间,但每个数字至少包含一个
- javascript - 如何让图片交替闪烁
- objective-c - 从 XML 字典中提取数组
- php - 显示来自 Laravel 的 Ajax 响应的返回消息
- python - 打印一个 5 位数字,如果我们将 1 放在开头,则生成的 6 位数字比我们将 1 @ 放在数字末尾时小 3 倍
- javascript - 异步和等待在 javascript 中无法正常工作
- python - 独立于 Bokeh 服务器托管交互式 Bokeh 图