这是我的 mongo 样本集合,{ \'_id\' : ObjectId(\'62aeb8301ed12a14a8873df1\'),\'Fields\' : [ { \'FieldId\' : \'name\', &...
这是我的 mongo 样本集合,
{
"_id" : ObjectId("62aeb8301ed12a14a8873df1"),
"Fields" : [
{
"FieldId" : "name",
"Value" : [ "test_123" ]
},
{
"FieldId" : "mobile",
"Value" : [ "123" ]
},
{
"FieldId" : "amount",
"Value" : [ "300" ]
},
{
"FieldId" : "discount",
"Value" : null
}
]
}
在这里我想要获得匹配的记录,例如 \' Fields.FieldId \' 应该等于 \' amount \' 并且 \' Fields.Value.0 \' 应该 大于 0 或者其他给定的值。
请注意以下几点,
\' Fields.Value \' 也可能为空
有时某些字段也可能不会出现在数组中
我尝试过以下方法,但没有效果,
db.form.aggregate([
{
$match:
{
{
$expr: {
$ne: [
{ $filter: {
input: '$Fields',
cond: { if: {$eq:["$$this.FieldId", "amount"]},
then:{$gte: [{$toDouble: "$$this.Value.0"}, 0]} }
}
}, []
]
}
}
}
}])
我不想使用 $project 或 $addFields。我只想进行直接 $match 查询。如果可以的话,请给我建议。
提前致谢,Mani
将字符串转换为双精度数并与对象数组进行比较
下载声明:
本站所有软件和资料均为软件作者提供或网友推荐发布而来,仅供学习和研究使用,不得用于任何商业用途。如本站不慎侵犯你的版权请联系我,我将及时处理,并撤下相关内容!
帖子版权声明
1、本帖标题:将字符串转换为双精度数并与对象数组进行比较 本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com
除非注明,本帖由RandomInsano 在本站《mongodb》 版块原创发布,
转载请注明出处!