PDA

View Full Version : کوئری بر روی مانگو دی بی



qadireh
شنبه 30 مرداد 1395, 14:09 عصر
من اطلاعات زیر را در یک کالکشن به نام numbers دارم


{
"_id" : ObjectId("57b8277cd48b97d6e38d9eb2"),
"student_id" : "326598",
"sem" : "sem1",
"marks" : [
{
"title" : "english",
"from" : 2,
"to" : 15
},
{
"title" : "maths",
"from" : 5,
"to" : 18
},
{
"title" : "science",
"from" : 10,
"to" : 20
}
]
}
{
"_id" : ObjectId("52873b7e4038253faa4bbc10"),
"student_id" : "124578",
"sem" : "sem1",
"marks" : [
{
"title" : "english",
"from" : 1,
"to" : 20
},
{
"title" : "maths",
"from" : 6,
"to" : 16
},
{
"title" : "science",
"from" : 12,
"to" : 20
}
]
}

و کوئری زیر را اجرا کردم :
var x= 7;
db.getCollection('numbers').aggregate([
{$unwind : "$marks"},
{$match : {$and :[{"marks.from": { $gte :x } },{"marks.to": { $lte :"marks.to" } } ]}}
])


من میخواهم سندهایی که مقدار X در رنج from تا to هستند برگردانده شود اما این کوئری به درستی کار نمی کند.
دوستانی که اطلاعات کافی دارند لطفا کمک کنند:

qadireh
جمعه 07 آبان 1395, 23:04 عصر
سلام دوست عزیز
شما باید کویری رو به صورت زیر بنویسی :
var x= 7;
db.getCollection('test').aggregate([
{$unwind : "$marks"},
{$match : {$and :[{"marks.from": { $lte :x } },{"marks.to": { $gte :x } } ]}}
])


باید جای $lte و $gte رو عوض کنی