小编Wim*_*ink的帖子

嵌入式文档中的"upsert"

我目前有以下数据集:

{  
    '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'.

mongodb

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

NGINX 重写请求到根目录之外的文件

目前我正在运行具有以下目录结构(简化)的网络项目:

  • 项目文件夹/
    • 民众/
    • 根/
    • 索引.php

我想要做的是将服务器块中的根设置为:

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 项目还没有根文件夹。

我正在尝试做的事情是可能的,以及我如何才能实现这一目标。

提前致谢。

configuration structure nginx

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

标签 统计

configuration ×1

mongodb ×1

nginx ×1

structure ×1