Я пытаюсь преобразовать собственный запрос mongodb в С#, используя их драйвер, но каким-то образом он не дает правильных результатов.
db.food.find
(
{
$and:[
{min_price:{$gte:1}}
,{max_price:{$lte:50}}
,{food:{$in:["sausage","burger"]}}
,{location:{$in:["new york","chicago"]}}
]
}
)
Может кто-то, пожалуйста, помогите мне с кодом С#?
Согласно документации, вы можете попробовать Query.And
метод с параметрами, в которых вы передаете один объект Query
, примерно так:
var food = server.GetDatabase("food", credentials);
var col = db.GetCollection<RawBsonDocument>("bar");
foreach (var doc in col.Find(
Query.And(
Query.GTE("min_price", 1),
Query.LTE("max_price", 50),
Query.In("food", new [] { (BsonValue)"sausage", (BsonValue)"burger" }),
Query.In("location", new [] { (BsonValue)"new york", (BsonValue)"chicago" })
))
)
{
// handle found doc here
}
в этом примере я использовал класс RawBsonDocument
, но вы можете использовать LazyBsonDocument
если ваши данные большие. Неявная операторы из string
в BsonValue
реализована, и вы можете использовать затем в .In
методы.