我目前有以下数据集:
{
'component_id':1,
'_locales':[
{
'url': 'dutch',
'locale': 'nl_NL'
}
] (etc)
}
Run Code Online (Sandbox Code Playgroud)
如果我想用语言环境更新行,我会运行类似于:
db.components.update(
{'component_id': 1, '_locales.locale': 'nl_NL'},
{$set: {'_locales.$': {'url': 'new url','locale':'nl_NL'}},
true
);
Run Code Online (Sandbox Code Playgroud)
这很好,直到语言环境不存在:
db.components.update(
{'component_id': 1, '_locales.locale': 'en_US'},
{$set: {'_locales.$': {'url': 'new url','locale':'en_US'}},
true
);
Run Code Online (Sandbox Code Playgroud)
因为component_id上有一个唯一索引,所以会抛出一个抱怨重复键的异常.
有没有办法自动添加具有不同语言环境的新"文档"并更新它(如果它已经存在)?根据使用位置运算符的文档将无法使用'upserting'.
目前我正在运行具有以下目录结构(简化)的网络项目:
我想要做的是将服务器块中的根设置为:
root /project_folder/root/;
Run Code Online (Sandbox Code Playgroud)
但是当请求位置不存在时,我希望它将请求转发到project_folder/index.php。我尝试了以下方法:
try_files $uri ../index.php?$query_string;
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用。
对于以 $document_root/public/* 开头的请求也是如此,需要将其转发到: $document_root/../public/*
我确实通过在 /project_folder/root/ 文件夹中添加一个 index.php 来管理这个问题,其中包括 /project_folder/index.php 。对于公共文件夹,我创建了一个符号链接。我可能可以通过为位置 /public/ 添加别名来解决这个问题,但是我试图使我的配置尽可能通用。
我试图阻止将 project_folder 设置为根文件夹,因为它有时包含我不希望从网络访问的文件。引入“根”文件夹是新的,但我正在尝试尽可能高效地做到这一点。现有的 Web 项目还没有根文件夹。
我正在尝试做的事情是可能的,以及我如何才能实现这一目标。
提前致谢。