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 Mongo DB搜索查询未给出结果 db.feedback.find({ “$or”:[ {“template_id”:{“$regex”:“*22532.*”,“$options”:“i”}, {“user_id”:{“$regex”:“*22532.*”,“$options”:“i”} ] })_Mongodb_Mongodb Query - Fatal编程技术网

Mongodb Mongo DB搜索查询未给出结果 db.feedback.find({ “$or”:[ {“template_id”:{“$regex”:“*22532.*”,“$options”:“i”}, {“user_id”:{“$regex”:“*22532.*”,“$options”:“i”} ] })

Mongodb Mongo DB搜索查询未给出结果 db.feedback.find({ “$or”:[ {“template_id”:{“$regex”:“*22532.*”,“$options”:“i”}, {“user_id”:{“$regex”:“*22532.*”,“$options”:“i”} ] }),mongodb,mongodb-query,Mongodb,Mongodb Query,template\u id是一个字符串,user\u id是NumberLong数据类型,它找不到结果。它给出了模板id的结果,如果我输入了正确的值,只有user\u id列似乎没有响应,有什么想法吗 样本数据 { "_id" : ObjectId("5ef21b7de21f8756b67da6e7"), "action_monkey" : 0, "feedback" : false, "more_feed

template\u id
是一个字符串,
user\u id
是NumberLong数据类型,它找不到结果。它给出了
模板id
的结果,如果我输入了正确的值,只有user\u 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 }

我对这个问题没有任何疑问

当您使用条件时,任何一个条件都应该为true

我尝试了您的查询,您正在传递
*22532.*
既不在
模板id中也不在
用户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
}
结果是完美的

结果:

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\u 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"
        }
    }
])

我对这个问题没有任何疑问

当您使用条件时,任何一个条件都应该为true

我尝试了您的查询,您正在传递
*22532.*
既不在
模板id中也不在
用户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
}
结果是完美的

结果:

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\u 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"
        }
    }
])

Hey@ovais你能不能添加一些样本数据{“_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下午*/{“_id”:ObjectId(“5ee74a95ae8ac276076db26a”),“action_monkey”:0,“feedback”:false,“更多反馈”:0,“模板id”:“M23G5RK”,“用户id”:23375},/*3创建日期:6/15/2020,5:55:22 AM*/{“\U id”:ObjectId(“5ee6c6faae8ac276076db24b”),“操作猴子”:0,“反馈”:false,“更多反馈”:0,“模板id”:“M23G5RK”,“用户id”:23423},Regex操作字符串,而不是数字。由于文档中字段的类型与查询运算符的类型不匹配,因此不存在匹配。Hey@ovais您能否添加一些示例数据{“_id”:ObjectId(“5ef21b7de21f87567da6e7”),“action_monkey”:0,“feedback”:false,“more_feedback”:0,“template_id”:“M23G5RK”,“user_id”“:23423},/*2 createdAt:6/15/2020,3:16:53 PM*/{”\uID:ObjectId(“5ee74a95ae8ac276076db26a”),“动作猴子”:0,“反馈”:false,“更多反馈”:0,“模板id:“M23G5RK”,“用户id”:23375},/*3 createdAt:6/15/2020,5:55:22 AM*/\uID:ObjectId:“动作猴子”:0,“反馈”:false,“更多反馈”:0,“模板id”:“M23G5RK”,“用户id”:23423},正则表达式对字符串而不是数字进行操作。由于文档中字段的类型与查询运算符的类型不匹配,因此不存在匹配项。我有一个查询在相同的模式db.dpsExtractedData.find({“$or”:[{“product_id”:{“$regex”:“$options”:“*60945.*”,“$options”:“I”},{“style_id”:{“$regex”:“*60945.*”,“$options”:“I”})请检查style_id和user_id类型是否为字符串或整数,我实际上使用Laravel的Lara表包使用jessengerI see从MongoDB获取数据。我不知道Lara table套餐和jessenger。谢谢我有一个查询,它在相同的模式db.dpsExtractedData.find({“$or”:[{“product_id”:{“$regex”:“*60945.*”,“$options”:“I”},{“style_id”:{“$regex”:“*60945.*”,“$options”:“I”}})上运行得非常好请检查style_id和user_id类型是否为字符串或整数,我实际上使用Laravel的Lara表包使用jessengerI see从MongoDB获取数据。我不知道Lara table套餐和jessenger。谢谢