首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SyntaxError:预期表达式,got‘} @(shell):1:0在mongoDB中

SyntaxError:预期表达式,got‘} @(shell):1:0在mongoDB中
EN

Stack Overflow用户
提问于 2019-08-05 10:15:13
回答 2查看 3.8K关注 0票数 2

我是在访问shell查询时获得SyntaxError: expected expression, got '}' @(shell):1:0

代码语言:javascript
复制
db.address.aggregate([ 
    {
        "$project": {
            "applications": {
                "$filter": {
                    "input": "$applications",
                    "as": "applications",
                    "cond": {

                        "$or": [
                            {
                                "$and": [
                                    {"$in": ['122018', "$$applications.code"]},
                                    {"$eq": ["$$applications.name", "DSB"]},
                                ]
                            },
                            {
                                "$and": [
                                    {"$in": ['122018', "$$applications.code"]},
                                    {"$eq": ["$$applications.name", "DSB"]},
                                ]
                            }
                        ]


                    }
                }
            },
            name: true
        }
    },
    {$unwind: {path: "$applications", preserveNullAndEmptyArrays: false}}
])

哪里是语法错误

EN

回答 2

Stack Overflow用户

发布于 2019-08-05 10:33:52

问题不在于语法,而在于执行查询的方式。在shell中,尝试删除所有空白行并在一行中运行,它将工作。例如。

代码语言:javascript
复制
db.address.aggregate([ { "$project": { "applications": { "$filter": { "input": "$applications", "as": "applications", "cond": {  "$or": [ { "$and": [ {"$in": ['122018', "$$applications.code"]}, {"$eq": ["$$applications.name", "DSB"]}, ] }, { "$and": [ {"$in": ['122018', "$$applications.code"]}, {"$eq": ["$$applications.name", "DSB"]}, ] } ]   } } }, name: true } }, {$unwind: {path: "$applications", preserveNullAndEmptyArrays: false}} ])

或者更好的方法是使用json文件并运行json文件作为查询。

票数 3
EN

Stack Overflow用户

发布于 2021-08-26 09:44:39

问题是mongo中一个非常常见的语法错误。mongo不能正确地解释双行中断。删除l.24和l.25中的空行,然后重试。

代码语言:javascript
复制
db.address.aggregate([ 
{
    "$project": {
        "applications": {
            "$filter": {
                "input": "$applications",
                "as": "applications",
                "cond": {

                    "$or": [
                        {
                            "$and": [
                                {"$in": ['122018', "$$applications.code"]},
                                {"$eq": ["$$applications.name", "DSB"]},
                            ]
                        },
                        {
                            "$and": [
                                {"$in": ['122018', "$$applications.code"]},
                                {"$eq": ["$$applications.name", "DSB"]},
                            ]
                        }
                    ]
                }
            }
        },
        name: true
    }
},
{$unwind: {path: "$applications", preserveNullAndEmptyArrays: false}}])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57356514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档