小编fov*_*zar的帖子

$ mongoDB findOneAndUpdate() 中的投影

我正在尝试使用 Express 和 Mongoose 构建一个简单的任务队列。这个想法是获取单个客户端并返回活动 ID 和客户端 ID(这是活动的子文档)。每次有人获取客户端时,其状态代码都会设置为 1。我提出了以下查询:

router.post('/lease', (err, res) => {
    Campaign.findOneAndUpdate({'isEnabled': true,  'clients.contact_status_code': 0}, {
            '$set': { 'clients.$.contact_status_code': 1 },
        },
        {
            new: true,
            projection: {
                'clients.$': true,
            },
        },
        (err, campaign) => {
            if (err) {
                return res.send(err);
            }

            res.json(campaign);
        }
    );
});
Run Code Online (Sandbox Code Playgroud)

但连接到此端点后我得到的只是:

{"_id":"591483241a84946a79626aef","clients":[{},{}]}
Run Code Online (Sandbox Code Playgroud)

在我看来,问题出在 $ 投影上,但我不知道如何解决这个问题。

编辑:我尝试使用以下代码,利用 $elemMatch:

router.post('/lease', (err, res) => {
    Campaign.findOneAndUpdate({'isEnabled': true,  'clients.contact_status_code': 0}, {
            '$set': { 'clients.$.contact_status_code': 1 },
        },
        {
            new: true,
            projection: {
                clients: {
                    '$elemMatch': {contact_status_code: …
Run Code Online (Sandbox Code Playgroud)

mongodb node.js

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

在Fat Free Framework中捕获上传的文件名

我的php脚本必须处理非slug文件名上传,例如,当用户尝试上传文件"Имянарусском.jpg"时.有些方法无法正确处理,所以我使用:

$overwrite = true;
$slug = true;
\Web::instance()->receive(NULL,$overwrite,$slug);
Run Code Online (Sandbox Code Playgroud)

所以,我在服务器上获得了"imja-na-russkom.jpg"文件.问题是我需要为DB捕获这个文件名,我试过这个:

$filename = \Web::instance()->Slug($_FILES['userfile']['name'];
Run Code Online (Sandbox Code Playgroud)

返回"imja-na-russkom-jpg" - 不是文件系统中使用的名称(不是点,而是扩展前的破折号).

所以,我的问题是:有没有办法捕获名称,在Web :: receive()中使用,或者,如果没有,是否有解决方法通过F3获取它?谢谢.

php file-upload slug fat-free-framework

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

标签 统计

fat-free-framework ×1

file-upload ×1

mongodb ×1

node.js ×1

php ×1

slug ×1