我的应用程序有以下堆栈:
Ruby 上的 Sinatra -> MongoMapper -> MongoDB
该应用程序在数据库中放置了多个条目。为了交叉链接到其他页面,我添加了某种语法。例如。:
咖啡是一种由咖啡豆制成的黑色含咖啡因液体。 {茶}是用树叶制成的。这两种饮料有时都与{牛奶}一起享用
在此示例中,{Tea} 将链接到另一个有关茶的数据库条目。
我正在尝试查询我的 mongoDB 有关所有“链接术语”的信息。通常在红宝石中我会做这样的事情:/{([a-zA-Z0-9])+}/
哪里的()
将返回一个匹配的字符串。然而在 mongo 中我得到了整个记录。
我怎样才能让 mongo 只返回我正在寻找的记录的匹配部分。因此,对于上面的示例,它将返回:
["Tea", "milk"]
我试图避免将整个记录拉入 Ruby 并在那里处理它们
不知道我是否明白。
db.yourColl.aggregate([
{
$match:{"yourKey":{$regex:'[a-zA-Z0-9]', "$options" : "i"}}
},
{
$group:{
_id:null,
tot:{$push:"$yourKey"}
}
}])
如果您不想重复tot
use $addToSet
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)