我尝试按属性以_find端点查询沙发数据库服务器,以'$'(在我的情况下为$ ref)开头。但是服务器总是返回空文档集。
{
"_id": "59bb208006149f50bb32f76f4900ccfa",
"_rev": "1-99022821cc2bb3ab0bdd84ab98b55828",
"contents": {
"eClass": "auth#//User",
"name": "SuperAdminUser",
"roles": [
{
"eClass": "auth#//Role",
"$ref": "59bb208006149f50bb32f76f4900c962?rev=1-24d9469afe50f162e473b09fdbd95154#/"
}
],
"email": "admin@mydomain.ru",
}
}
{
"contents": {
"eClass": "auth#//User",
"roles": {
"$elemMatch": {
"eClass": {"$regex": ".*auth#//Role"},
"$ref": {"$regex": "^59bb208006149f50bb32f76f4900c962.*"}
}
}
}
}
但没有返回结果。
{
"contents": {
"eClass": "auth#//User",
"roles": {
"$elemMatch": {
"eClass": {"$regex": ".*auth#//Role"}
}
}
}
}
按预期工作。
芒果服务器似乎无法识别$ ref之类的属性。
我试图用“ \ $ ref”转义属性,但没有成功。 (不正确 !!!,请参阅更新)
是否有任何变通方法来查询诸如$ ref之类的属性?
更新 该查询有效。
{
"selector": {
"contents": {
"eClass": "auth#//User",
"roles": {
"$elemMatch": {
"eClass": {
"$regex": ".*auth#//Role"
},
"\\$ref": {
"$regex": ".*59bb208006149f50bb32f76f4900c962.*"
}
}
}
}
}
}
因此,只需使用“ \\ $ ref”转义样式即可。
答案 0 :(得分:0)
注意:OP提供了此答案作为对问题的更新。我已将其移至此处以符合站点标准。
{
"selector": {
"contents": {
"eClass": "auth#//User",
"roles": {
"$elemMatch": {
"eClass": {
"$regex": ".*auth#//Role"
},
"\\$ref": {
"$regex": ".*59bb208006149f50bb32f76f4900c962.*"
}
}
}
}
}
}
因此只需使用“ \\ $ ref”转义样式即可。