小编Mer*_*ian的帖子

在Capistrano 3中永久切换用户(单独授权和部署)

我们在服务器管理中有以下模式 - 所有用户都有自己的用户,但部署完全由特殊部署用户执行,没有直接登录的可能性.

我们在Capistrano 2.x中使用了这个方法:

default_run_options[:shell] = "sudo -u deploy bash"

$ cap stage deploy -s user=thisisme
Run Code Online (Sandbox Code Playgroud)

我知道Capistrano 3.x有直接切换用户的方法:

task :install do
    on roles(:all) do
        as :deploy do
            execute :whoami
        end
    end
end
Run Code Online (Sandbox Code Playgroud)

但是这段代码将填满所有任务,默认任务无论如何都不会继承部署用户.是否可以直接设置登录用户而无需将此代码拖到每个任务?

ruby deployment capistrano

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

MongoDB 如何仅对单个字段进行不区分大小写的搜索?

所以,案子很简单。我想在字段上进行不区分大小写的搜索name。幸运的是,最新的 Mongo 为我们带来了排序规则和排序索引的概念。

这将很容易与类似的东西一起工作:

db.users.find({ name: 'John' }).collation({ locale: 'en', strength: 2 })
Run Code Online (Sandbox Code Playgroud)

我有给定排序强度的字段的支持索引 - 非常有效。

但是,如果我想将搜索限制在某个更严格的范围内,例如具有一些companyId常量,事情就会变得有点混乱:

db.users.find({ companyId: 'some-company-id', name: 'John' }).collation({ locale: 'en', strength: 2 })
Run Code Online (Sandbox Code Playgroud)

该排序规则适用于 name AND some-company-id。因此,它也会查找SOME-COMPANY-IDSoMe-CoMpAnY-iD,这可能会导致意外的冲突,并且由于所有情况都匹配,因此任何支持索引都companyId没有帮助。

我的问题是:如何在只有 1 个不区分大小写的字符串字段的情况下有效搜索

可能的答案可能类似于正则表达式搜索:

db.users.find({ companyId: 'some-company-id', name: /^John$/i })
Run Code Online (Sandbox Code Playgroud)

...但不幸的是任何索引都无法支持此搜索。

mongodb

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

标签 统计

capistrano ×1

deployment ×1

mongodb ×1

ruby ×1