如何在go中编写这些mongo代码

如何在go中编写这些mongo代码,go,mgo,Go,Mgo,我的mongo文件在这里 我试着用围棋写这首歌 但它显示了这个错误 语法错误:意外的逗号,应为] 请帮帮我 After the answer i try this one 这一次编译成功,但在运行go文件后,向我发送此错误消息2016/05/11 11:04:17$project的顶层不允许使用$expression 退出状态1 您的代码中有两个错误: 1.bson.M中的数组 bson.M[“$$ans.status”,“Active”,]将给出类似于类型bson的错误。M不是表达式,并且由

我的mongo文件在这里

我试着用围棋写这首歌

但它显示了这个错误 语法错误:意外的逗号,应为]

请帮帮我

After the answer i try this one
这一次编译成功,但在运行go文件后,向我发送此错误消息2016/05/11 11:04:17$project的顶层不允许使用$expression 退出状态1


您的代码中有两个错误:

1.bson.M中的数组
bson.M[“$$ans.status”,“Active”,]
将给出类似于
类型bson的错误。M不是表达式
,并且由于在这种情况下不需要键值对,因此字符串数组将是更可取的情况

尝试:

2.逗号 根据:

lexer总是在标记后插入分号。这可以概括为“如果换行符位于可以结束语句的标记之后,请插入分号”

如果在
}
之后没有附加逗号,lexer将插入一个
为您,这将导致您当前的问题

"$filter":bson.M{"input":"$answer","as":"ans","cond":bson.M{"$eq":bson.M{"$$ans.status","Active",},},} // should add a comma at the end of the line
修改后:

"$filter":bson.M{"input":"$answer","as":"ans","cond":bson.M{"$eq":[]string{"$$ans.status","Active",},},},
更新 对于第二个问题,
$表达式不允许出现在$project的顶层
,请注意,
mongodb
中的聚合只接受
数组
,您可以参考以下链接:

db.collection.aggregate([{},…])

您的代码中有两个错误:

1.bson.M中的数组
bson.M[“$$ans.status”,“Active”,]
将给出类似于
类型bson的错误。M不是表达式
,并且由于在这种情况下不需要键值对,因此字符串数组将是更可取的情况

尝试:

2.逗号 根据:

lexer总是在标记后插入分号。这可以概括为“如果换行符位于可以结束语句的标记之后,请插入分号”

如果在
}
之后没有附加逗号,lexer将插入一个
为您,这将导致您当前的问题

"$filter":bson.M{"input":"$answer","as":"ans","cond":bson.M{"$eq":bson.M{"$$ans.status","Active",},},} // should add a comma at the end of the line
修改后:

"$filter":bson.M{"input":"$answer","as":"ans","cond":bson.M{"$eq":[]string{"$$ans.status","Active",},},},
更新 对于第二个问题,
$表达式不允许出现在$project的顶层
,请注意,
mongodb
中的聚合只接受
数组
,您可以参考以下链接:

db.collection.aggregate([{},…])
完成所有这些之后,这一个就开始工作了

完成所有这些之后,这一个就开始工作了


我尝试这一个o2:=bson.M{“$project”:bson.M{“$answer”:bson.M{“$id”:1,“title”:1,“revision”:1,“bgmageurl”:1,“author”:1,“postdatetime”:1,“status”:1,“qatags”:1,“followers”:1,“answer”:bson.M{“$filter”:bson.M{“input”:“$answer”,“as”:“ans”,“cond”:bson.M{“$eq”:bson.M{“$$ans.status”,“Active”,},},},},},},},},},},},},},},抱歉,几分钟前我已经更新了我的答案,我也尝试了这个o2:=bson.M{“$project”:bson.M{“$answer”:bson.M{“{id”:1,“title”:1,“revision”:1,“bgmageurl”:1,“author”:1,“postdatetime”:1,“状态”:1,“qatags”:1,“追随者”:1,“qaviews”:1,“回答”:bson.M{“$filter”:bson.M{“input”:“$answer”,“as”:“ans”,“cond”:bson.M{“$eq”:bson.M[“$$ans.status”,“Active”],},},},},},},},},},}它给我错误语法错误:意外的逗号,期望]Ops,我已经更新了我的第一个答案,但没有更新第二个,这段代码将返回到我提到的
数组
问题,尝试使用
[]字符串{“$$ans.status”,“Active”,}
,就像我在第一部分提到的那样。我也将更新第二部分。我尝试这一部分o2:=bson.M{”$project:bson.M{“$answer”:bson.M{“$id”:1,“title”:1,“revision”:1,“bgmageurl”:1,“author”:1,“postdatetime”:1,“status”:1,“qatags”:1,“followers”:1,“qaviews”:1,“answer”:bson.M{“$filter”:bson.M{“input”:“$ans”,“as”:“ans”,“cond”:bson.M{“$eq”:bson.M{$$ans.status”,“Active”,},},},},},},},},},},},},很抱歉,我已经在几分钟前更新了我的答案,我也尝试了这个o2:=bson.M{“$project”:bson.M{“$answer”:bson.M{”{“$id”:1,“title”:1,“revision”:1,“bgimagerurl”:1,“author”:1,“postdatetime”:1,“status”:1,”qatags“:1,“followers”:1,“qaviews”:1,“answer”:bson.M{“$filter”:bson.M{“input”:“$answer”,“as”:“ans”,“cond”:bson.M{“$eq”:bson.M[“$$ans.status”,“Active”],},},},},},},},},},},},},}它给我错误语法错误:意外的逗号,期望]Ops,我已经更新了我的第一个答案,但没有更新第二个,这段代码将返回到我提到的
数组
问题,尝试使用
[]字符串{“$$ans.status”,“Active”,}
,就像我在第一部分提到的那样。我也将更新第二部分。
"$filter":bson.M{"input":"$answer","as":"ans","cond":bson.M{"$eq":bson.M{"$$ans.status","Active",},},} // should add a comma at the end of the line
"$filter":bson.M{"input":"$answer","as":"ans","cond":bson.M{"$eq":[]string{"$$ans.status","Active",},},},
db.collection.aggregate( [ { <stage> }, ... ] )
o2 := bson.M{
        "$project":bson.M{"_id":1,"title":1,"postdatetime":1,"status":1"answer":bson.M{
                    "$filter":bson.M{"input":"$answer","as":"ans","cond":bson.M{"$eq":[]string{"$$ans.status","Active",},},},},},}