Mongodb查询不返回记录,甚至数组中存在数据

Mongodb查询不返回记录,甚至数组中存在数据,mongodb,Mongodb,我在一个字符串数组中搜索字词,即使我得到了只包含数组中搜索字词的记录的结果,但mongo查询不会返回包含搜索字词和其他值的其他记录 我用find()和aggregate()查询尝试了elemMatch()运算符,但它无法返回记录。我想要包含类似查询的内容。如果数组包含搜索项,则返回该记录 db.getCollection('testData').find({“首字母缩写”:“JNTU”}) 这里的“首字母缩略词”是一个字符串数组 我想要在数组中包含“JNTU”项的记录。 e、 g假设下面是集合

我在一个字符串数组中搜索字词,即使我得到了只包含数组中搜索字词的记录的结果,但mongo查询不会返回包含搜索字词和其他值的其他记录

我用find()和aggregate()查询尝试了elemMatch()运算符,但它无法返回记录。我想要包含类似查询的内容。如果数组包含搜索项,则返回该记录

db.getCollection('testData').find({“首字母缩写”:“JNTU”})

这里的“首字母缩略词”是一个字符串数组

我想要在数组中包含“JNTU”项的记录。 e、 g假设下面是集合

record1: ["JNTU", "JNTUK"]
record2:["JNTU"]
record3:[]
我期望: 记录1:[“JNTU”,“JNTUK”] 记录2:[“JNTU”]
作为输出

MongoDB有一个
$regex
操作符,它允许将正则表达式作为查询提交

db.getCollection('testData').find({“首字母缩写”:{“$regex”:“JNTU”,“$options”:“i”})
现在,它将包含所有结果文档,其中包含字符串
JNTU
,作为数据的一部分

要了解更多信息,您可以阅读本精彩文档

尝试此查询

db.getCollection('testData').find({ “首字母缩略词”:/JNTU/
});

你能分享你的模式吗,样本集合。我想要一个完全匹配的记录。它不适合我。我无法找出原因。是的,你是对的,但它将进行部分匹配,因此你将获得两条记录的匹配。不,因为它进行部分匹配。我想要一个包含搜索词的检查数组的查询。