如果一个对象的字段包含一个子字符串,如何查找数据库中的所有对象?

如果该字段是具有字符串值的集合对象中的字段:

我想找到数据库"database"中的所有对象,其中A包含一个子字符串,比如"abc def".

我试过:

db.database.find({A: {$regex: '/^*(abc def)*$/''}})

但没用

UPDATE

真正的字符串(unicode):

Sujet  Commentaire sur  Star Wars  Episode III - La Revanche des Sith 1

需要搜索《星球大战》的所有条目

db.test.find({A: {$regex: '^*(star wars)*$''}}) not wokring

推荐答案

而不是这个:

db.database.find({A: {$regex: '/^*(abc def)*$/''}})

你应该这样做:

db.database.find({A: /abc def/i })

^*实际上不是有效的语法,因为^和$是锚,不是可重复的.你可能是指^.*在这里但是没有必要^.*因为它的意思是"直到后面的字符的所有内容",而(abc def)*的意思是"0或更多次"abc def,但是它必须在字符串的末尾,因为你的$.结尾的"i"是不区分大小写的.

Mongodb相关问答推荐

MongoDB聚合匹配字符串字符

我可以在BSON中使用代理字段吗?

无法在Ubuntu 22.04上安装MongoDB 7.0

DB 中的引用对象在 GraphQL 查询中返回 null

如何在 Spring-Data-MongoDB 中使用 $facet、$addFields 和 $function

如何替换mongodb中的动态键?

有没有办法在 Prisma for MongoDB 的模式中显式声明 int32?

使用MongoDB作为我们的主数据库,我应该使用单独的图数据库来实现实体之间的关系吗?

将 MongoDB BsonDocument 转换为字符串

在 MongoDB 中打开连接的 SocketTimeout

oplog 在独立 mongod 上启用,不适用于副本集

MongoDB .NET 未在 upsert 上生成 _id

如何使用sailsjs v0.10连接mongodb?

Mongoose 不创建新集合

MongoDB中超过2GB的数据库

如何在mongodb中删除数组的第n个元素

PyMongo 中的警告消息:count is deprecated

使用命令行从 MongoDB 数据库中的所有集合中删除所有索引

Mongoid 不在查询中

mongoose — 判断 ObjectId 是否存在于数组中