mongodb - 如何在 Mongodb 的字段中查找子字符串

如何找到数据库中的所有对象,其中对象的字段包含子字符串?

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

我想在 db“数据库”中查找所有对象,其中 A 包含一个子字符串,例如“abc def”。

我试过了:

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

但没用

更新

一个真实的字符串(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 })

^* 实际上不是有效的语法,因为 ^ 和 $ 是 anchor ,而不是可重复的东西。你可能是指 ^.* 这里。但是不需要 ^.*,因为它只是表示“直到后面的字符的所有内容”,而 (abc def)* 表示“0 次或多次“abc def”,但它必须位于字符串的末尾,因为你的$。最后的“i”是让它不区分大小写。

https://stackoverflow.com/questions/10242501/

相关文章:

java - Mongo - 忽略属性被持久化

arrays - 更新 mongodb 中的嵌套数组

mongodb - 如何使用 mongodump 转储匹配特定日期范围的记录?

node.js - 处理 Mongoose 验证错误——在哪里以及如何处理?

node.js - 如何在 MongoDB collection.find() 上获取回调

mongodb - 使用新的 _id 在 MongoDB 中复制文档

node.js - 如何使用 Mongoose Promise - mongo

mongodb - 如何限制 mongodb 中更新文档的数量

mongodb - 如何将元素插入 MongoDB 内部列表?

javascript - 通过 JavaScript 直接访问 MongoDB