您似乎无法在CouchDB中嵌套数据库.人们如何解决这个限制?例如,假设我想创建一个博客引擎,其中每个域都有一个单独的数据库.在每个数据库中,我可能希望用户数据库,订单数据库等包含各种用户文档,订单文档等.
显而易见的方式似乎是一个扁平结构,其中数据库名称用连字符划分数据库嵌套级别之间的人为边界:
myblog.com-users
myblog.com-posts
myblog.com-comments
anotherblog.com-users
anotherblog.com-posts
anotherblog.com-comments
...hundreds more...
Run Code Online (Sandbox Code Playgroud)
另一种解决方案是保留较低级别的数据库并使用顶级值标记每个文档:
包含文档User1的用户数据库,字段instance ="Test"或字段domain ="myblog.com"
默认情况下,Mac OS X上的GNU Emacs使用控制键作为CTRL,命令键作为META使用.这让我很生气,因为我的MacBook Pro 在左边只包含一个控制键,而我习惯在键盘的两侧都有一个控制键.
随着我的GNU Emacs的安装,我可以修改的变量mac-control-modifier,mac-command-modifier以及mac-option-modifier使命令作为CTRL和选项作为META.
如何在IntelliJ IDEA中完成相同的操作?选择"Emacs"作为键映射很容易,但我没有看到任何方法对CTRL和META进行类似的重映射.我知道我可以在操作系统中全局重新映射这些密钥,但我不想这样做.我也知道我可以参与每一个动作并单独修改它们,但这似乎是一个糟糕的解决方案.
我有一个服务器,我在其中设置了一个Git存储库.从我的客户,我可以执行
git pull origin
和
git push origin
并且我的更改被正确地推送/拉到远程Git服务器.我还需要能够在服务器上签出项目.我在设置时没有使用init --bare,因为我明确地希望在服务器上也有一个工作副本.
然而,当我运行git pull时,我收到一条致命的消息:你想从今天的哪个地方获取?.如何在服务器上查看我本地工作副本的最新更改?
为什么这个Parsec排列解析器不解析b?
p :: Parser (String, String)
p = permute (pair
<$?> ("", pa)
<|?> ("", pb))
where pair a b = (a, b)
pa :: Parser String
pa = do
char 'x'
many1 (char 'a')
pb :: Parser String
pb = do
many1 (char 'b')
?> parseTest p "xaabb"
("aa","bb") -- expected result, good
?> parseTest p "aabb"
("","") -- why "" for b?
Run Code Online (Sandbox Code Playgroud)
解析器pa配置为可选的,<$?>因此我不明白为什么它的失败影响了b的解析.我可以将其更改optional (char 'x')为获得预期的行为,但我不明白为什么.
pa …Run Code Online (Sandbox Code Playgroud)