Mongodb循环查询.NET MVC匹配

Mongodb循环查询.NET MVC匹配,mongodb,mongodb-query,Mongodb,Mongodb Query,我得到结果列表值,我想循环查询。匹配以获得更多匹配 string fruitlist = "orange,apple,berry"; IMongoQuery query = Query.And( Query.GTE("memberinfo.height", 170), Query.LTE("memberinfo.height",179), Query.GTE("memberin

我得到
结果列表
值,我想循环
查询。匹配
以获得更多匹配

string fruitlist = "orange,apple,berry";
IMongoQuery query = Query.And(
                    Query.GTE("memberinfo.height", 170),
                    Query.LTE("memberinfo.height",179),
                    Query.GTE("memberinfo.weight",50),
                    Query.LTE("memberinfo.weight",59),
                    Query.Matches("memberinfo.fruits.name","orange")
);

MongoCursor mongocursor = nsdb.GetCollection("XXDB", "Member").Find(query).SetSortOrder(SortBy.Descending("memberinfo.createtimestamp"));
Exmaple集合结构

{
    "_id" : "123",
    "name" : "John",
    "height": 170,
    "weight": 55,
    "memberinfo" : {
        "fruits" : [ {"name" : "apple","reason" : null },
                     {"name" : "orange","reason" : null},
                     {"name" : "berry","reason" : null}
        ],
    }
},
{
    "_id" : "456",
    "name" : "Cena",
    "height" : 160,
    "weight": 90,
    "memberinfo" : {
        "fruits" : [ {"name" : "berry","reason" : null},
                     {"name" : "orange","reason" : null}
        ],
    }
}
有什么建议吗


谢谢

终于有了解决方案=)

string fruitlist=“橙色、苹果、浆果”;
string[]cat_sel=foultlist.Split(',');
var和List=新列表();
foreach(类别选择中的var属性)
{
Add(Query.Matches(“memberinfo.fruits.name”,属性));
}
IMongoQuery=query.And(
Query.GTE(“memberinfo.height”,170),
Query.LTE(“memberinfo.height”,179),
Query.GTE(“memberinfo.weight”,50),
Query.LTE(“memberinfo.weight”,59),
查询和(andList)
);
MongoCursor MongoCursor=nsdb.GetCollection(“XXDB”,“Member”).Find(query).SetSortOrder(SortBy.Descending(“memberinfo.createtimestamp”);

将您的收藏展示给我们well@ShumiGupta添加了示例集合structure@ShumiGupta你知道吗?你试过使用$in吗?@ShumiGupta在
db中使用
中的$in。找到
对吗?但我还有其他疑问,比如
GTE
LTE
,有什么建议吗?
string fruitlist = "orange,apple,berry";
string[] cat_sel = fruitlist.Split(',');

var andList = new List<IMongoQuery>();

foreach (var attribute in cat_sel)
{
    andList.Add(Query.Matches("memberinfo.fruits.name", attribute));
}

IMongoQuery query = Query.And(
                Query.GTE("memberinfo.height", 170),
                Query.LTE("memberinfo.height",179),
                Query.GTE("memberinfo.weight",50),
                Query.LTE("memberinfo.weight",59),
                Query.And(andList)
);

MongoCursor mongocursor = nsdb.GetCollection("XXDB", "Member").Find(query).SetSortOrder(SortBy.Descending("memberinfo.createtimestamp"));