小编A.V*_*rno的帖子

是否有可以将正则表达式存储为值的数据库?

我正在寻找一个可以将正则表达式存储为值的数据库.例如这样的事情:

{:name => "Tim", :count => 3, :expression => /t+/},
{:name => "Rob", :count => 4, :expression => /a\d+/},
{:name => "Fil", :count => 1, :expression => /tt/},
{:name => "Marc", :count => 1, :expression => /bb/}
Run Code Online (Sandbox Code Playgroud)

所以我可以根据查询是否匹配表达式返回行/文档(例如"FIND rows WHERE"tt"=〜:expression").并得到蒂姆和菲尔行作为结果.大多数数据库都可以完全相反(检查文本字段是否与正则表达式查询匹配).但不幸的是,mongo和postgres都不能做相反的事情.

PS或者我错了,有一些postgres或mongo扩展允许我存储正则表达式?

regex database

8
推荐指数
2
解决办法
5792
查看次数

如何在mongoDB中展平双数组?

我的mongoDB文档中的一些字段如下所示:

{
...
Countries: [["Spain", "France"]]
...
}
Run Code Online (Sandbox Code Playgroud)

或这个:

{
...
Countries: [["Spain"],["Russia", "Egypt"]]
...
}
Run Code Online (Sandbox Code Playgroud)

我想做的就是[["Spain", "France"]]转入["Spain", "France"][["Spain"],["Russia", "Egypt"]]转换["Spain", "Russia", "Egypt"],类似于flatten在Ruby中使用方法.

有没有办法在mongoDB中展平数组?我需要在整个集合中的所有文档中展平数组,而不仅仅是单个文档,如果这很重要,数组中的值及其数量也会因文档而异.

我也使用Ruby作为mongo的驱动程序,因此使用Ruby驱动程序的方法对我也很有用.

ruby arrays mongodb

5
推荐指数
3
解决办法
1999
查看次数

索引感知数组交集

我正在寻找一种数组交集的&方法,与普通方法不同,它只匹配那两个数组中相同且具有相同索引的元素.例如:

["a", "b", "c", "d"].intersect(["a", "b", "f", "d", "c"])
Run Code Online (Sandbox Code Playgroud)

应该回来

["a", "b", "d"]
Run Code Online (Sandbox Code Playgroud)

因为它们都存在于同一索引(0,1和3)的"c"两个数组中,而被排除,因为它在两个数组(2和4)中有不同的位置:

# 0    1    2    3    4
["a", "b", "c", "d"]
["a", "b", "f", "d", "c"]
Run Code Online (Sandbox Code Playgroud)

我可以想到这个问题的几种解决方案.第一个是循环,另一个是首先修改数组以在元素中包含它们的索引,然后使用相交&.例如:

["a", "b", "c"] #=> ["0a", "1b", "2c"]
Run Code Online (Sandbox Code Playgroud)

但是,我想知道是否存在更好的方法.我正在寻找使用正负索引.

ruby arrays

3
推荐指数
1
解决办法
219
查看次数

如何找到包含尽可能多的关键字的数组字段的文档?

假设我想找到"tags"包含标签的字段的文档:"a", "b", "c".

如果我使用$and运算符,它将只返回"tags"包含所有三个标记的文档.

这种严格的搜索不是我想要的.如果我选择使用$or运算符,它将找到包含列表中至少一个标记的文档,但它不会尝试检查是否存在首先包含其中几个或全部的文档.

我想要做的是搜索包含"尽可能多的标签,但至少有一个"的文档,或者换句话说,找到包含至少一个标签的所有文档,但首先显示最匹配的文档.我知道我可以通过一系列查询来做到这一点(例如,使用$and查询然后$or),但如果有更多的2标签,我将不得不使用不同的标签组合进行大量查询以获得良好的结果.

arrays search mongodb

2
推荐指数
1
解决办法
199
查看次数

在Ruby中,有没有办法(或许是宝石)以"XX:XX"格式处理时间?

特别地,添加时间(例如11:40 + 00:30 = 12:10)并检查时间是否属于范围(例如(11:00..12:00).include?(11:30)).我知道我可以写一个类,但也许已经存在一个解决方案.内置Time类并不完全是我想要的,因为我对内置的与日期相关的功能不感兴趣.

ruby time

1
推荐指数
1
解决办法
186
查看次数

如何在Ruby中用字符串切出一个单词?

这是我的代码:

query = "This is a good life"
=> "This is a good life"
query.slice!("is")
=> "is"
query
=> "Th is a good life"
Run Code Online (Sandbox Code Playgroud)

我想要做的是只在片段是一个单词时才切片,而不是另一个单词的一部分.

  • 切片(" is ")不会在前一个和后一个单词之间留下空格,也不会对字符串的第一个或最后一个单词起作用.
  • ("is ")或者(" is")不保证片段不是单词的一部分.

ruby string

0
推荐指数
1
解决办法
435
查看次数

如何将值数组用作数组/散列路径?

即,我怎么来自这个:

path = [ 1, 3, 4, 5 ... ]
Run Code Online (Sandbox Code Playgroud)

对此:

my_array[1][3][4][5]...
Run Code Online (Sandbox Code Playgroud)

path阵列的长度未知.

ruby arrays

0
推荐指数
1
解决办法
57
查看次数

标签 统计

ruby ×5

arrays ×4

mongodb ×2

database ×1

regex ×1

search ×1

string ×1

time ×1