Regex 在mongodb和mongodb java中搜索字符串类型字段中列表包含的所有值

Regex 在mongodb和mongodb java中搜索字符串类型字段中列表包含的所有值,regex,mongodb,mongodb-query,mongodb-java,Regex,Mongodb,Mongodb Query,Mongodb Java,我在mongodb集合中有名为speech的数据,字段id和speech的格式如下 { "speechtext" : "Always be a good boy" }, { "speechtext" : "Always be a simply guy" }, { "speechtext" : "Always be a cute boy" }, { "speechtext" : "I am a girl." } 我必须代表两个关键字来获取数据,比如“始终是”和“男孩”,用于条件和,或者,不是

我在mongodb集合中有名为speech的数据,字段id和speech的格式如下

{ "speechtext" : "Always be a good boy" },
{ "speechtext" : "Always be a simply guy"  },
{ "speechtext" : "Always be a cute boy" },
{ "speechtext" : "I am a girl." }
我必须代表两个关键字来获取数据,比如“始终是”和“男孩”,用于条件和,或者,不是

如果条件为“and”,则关键字为“Always be”和“boy”的搜索结果将为-

{ "speechtext" : "Always be a good boy" },
{ "speechtext" : "Always be a cute boy" }
{ "speechtext" : "Always be a good boy" },
{ "speechtext" : "Always be a simply guy" },
{ "speechtext" : "Always be a cute boy"  }
{  "speechtext" : "I am a girl." }
如果条件为“或”,则搜索关键字为“始终为”,搜索结果为“男孩”-

{ "speechtext" : "Always be a good boy" },
{ "speechtext" : "Always be a cute boy" }
{ "speechtext" : "Always be a good boy" },
{ "speechtext" : "Always be a simply guy" },
{ "speechtext" : "Always be a cute boy"  }
{  "speechtext" : "I am a girl." }
若条件为“非”,则关键字为“始终为”且搜索结果为“男孩”-

{ "speechtext" : "Always be a good boy" },
{ "speechtext" : "Always be a cute boy" }
{ "speechtext" : "Always be a good boy" },
{ "speechtext" : "Always be a simply guy" },
{ "speechtext" : "Always be a cute boy"  }
{  "speechtext" : "I am a girl." }
我已经有了如下“或”条件的解决方案

db.getCollection('speech').find({"speechtext" : { "$regex" : "Always be|boy"}})

我想查询“and”和“not”条件。

这里依次查询“or”、“and”和“not”

为了或-

db.getCollection('speech').find({"speechtext" : { "$regex" : "Always be|boy"}})
及—

db.getCollection('speech').find({$and:[{"speechtext":{$in:[/'Always be/]}},{"speechtext":{$in:[/boy/]}}]})
因为不是-

db.getCollection('speech').find({$or:[{"speechtext":{$nin:[/Always be/]}},{"speechtext":{$nin:[/boy/]}}]})

请不要混淆样本数据中的
\u id
值,而只是删除不相关的数据,这也应该是一个随时可以“复制粘贴”的数据,以使其成为可用和可测试的源。还要注意,您的格式设置是错误的。缩进文本用于代码,并使“文本”的段落未缩进。在离开帖子之前,一定要检查你的格式是否清晰易读。最后,如果它真的是一个
regex
问题,那么就这样标记它。