我是在访问shell查询时获得SyntaxError: expected expression, got '}' @(shell):1:0的
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}}
])哪里是语法错误
发布于 2019-08-05 10:33:52
问题不在于语法,而在于执行查询的方式。在shell中,尝试删除所有空白行并在一行中运行,它将工作。例如。
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文件作为查询。
发布于 2021-08-26 09:44:39
问题是mongo中一个非常常见的语法错误。mongo不能正确地解释双行中断。删除l.24和l.25中的空行,然后重试。
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}}])https://stackoverflow.com/questions/57356514
复制相似问题