Arrays 如何在MongoDb Compass查询内部对象集合中执行大于运算符
这是我在Mongo DB Compass中的Json。我只是在查询每个集合中超过评级的产品 注意:如果我使用pageCount,它可以正常工作,因为它不在集合中Arrays 如何在MongoDb Compass查询内部对象集合中执行大于运算符,arrays,mongodb,mongodb-query,aggregation-framework,Arrays,Mongodb,Mongodb Query,Aggregation Framework,这是我在Mongo DB Compass中的Json。我只是在查询每个集合中超过评级的产品 注意:如果我使用pageCount,它可以正常工作,因为它不在集合中 {PageCount:{gte:2}}有效。 集合的内部数组集合出现问题,如果有人匹配它,则显示所有 当我们执行下面的查询时,如果索引中的任何一个大于99,它将显示所有值 {"ProductField.ProductDetailFields.ProductDetailInfo.ProductScore.Rating"
{PageCount:{gte:2}}有效。
集合的内部数组集合出现问题,如果有人匹配它,则显示所有
当我们执行下面的查询时,如果索引中的任何一个大于99,它将显示所有值
{"ProductField.ProductDetailFields.ProductDetailInfo.ProductScore.Rating": {$exists:true, $ne: null , $gte: 99}}
-----如果我执行上面的查询,我将得到这个输出
在MongoDB查询中如何进行类似于每种事物的迭代和检查条件
@Misky如何运行此查询执行:
在Mongo Shell中运行此查询时,没有sql客户端抛出以下错误。我们使用的是3.4.9
这与你的想法有点接近吗
db.collection.aggregate({
$addFields: {
"ProductField.ProductDetailFields": {
$map: {
"input": "$ProductField.ProductDetailFields",
as: "pdf",
in: {
$filter: {
input: {
$map: {
"input": "$$pdf.ProductDetailInfo",
as: "e",
in: {
$cond: [
{
$gte: [
"$$e.ProductScore.Rating",
99
]
},
{
$mergeObjects: [
"$$e",
{
PageNumber: "$$pdf.PageNumber"
}
]
},
null
]
}
}
},
as: "i",
cond: {
$ne: [
"$$i",
null
]
}
}
}
}
}
}
},
{
$addFields: {
"ProductField.ProductDetailFields": {
"$arrayElemAt": [
"$ProductField.ProductDetailFields",
0
]
}
}
})
您希望从您的帖子中的文档中得到什么结果?顺便说一下,{code>{“yourLongThing”:{$gte:99}这是足够的,因为任何大于99的数字都是空的,而不是空的xdSube将在多个文档中作为文档集合内的2个集合——每个文档产品DealDeliFielo数组都有一个产品评级,并且我需要基于RATIGN的过滤。如果你看到屏幕截图,我已经做了gte:99,但它显示以下值。如果不在嵌套集合gte中works@Minsky如果它按照您的要求工作,您可以将上面发布的json放入gte中,然后尝试使用gte,然后查看是的,它可以工作。谢谢您的时间。您知道如何在MongoDB compass或管道脚本中运行吗。ith抛出一个语法错误。如果解决了,请接受@MohamedSahir的答案。是的,工作很辛苦。我已经尝试在compass中添加了一些错误的语法。然后我尝试使用托管的mongodb NoSQL客户端,它有聚合下拉函数,在那里我删除了db.collection.aggregate({}});在下面的行中粘贴并执行查询。我在那个里添加了图片。你们能看看回复吗?这对我很有帮助。谢谢。我会在OT2上看一看,你能帮我用skype连接或免费聊天吗。sahir@gmail.com. 但我仍然面临着它不能在NoSQL客户机中运行的问题-,thttps://www.nosqlclient.com/demo/ 否则,你可以创建一个收集在该客户端,使可行的,也为我罚款。
db.collection.aggregate({
$addFields: {
"ProductField.ProductDetailFields": {
$map: {
"input": "$ProductField.ProductDetailFields",
as: "pdf",
in: {
$filter: {
input: {
$map: {
"input": "$$pdf.ProductDetailInfo",
as: "e",
in: {
$cond: [
{
$gte: [
"$$e.ProductScore.Rating",
99
]
},
{
$mergeObjects: [
"$$e",
{
PageNumber: "$$pdf.PageNumber"
}
]
},
null
]
}
}
},
as: "i",
cond: {
$ne: [
"$$i",
null
]
}
}
}
}
}
}
},
{
$addFields: {
"ProductField.ProductDetailFields": {
"$arrayElemAt": [
"$ProductField.ProductDetailFields",
0
]
}
}
})