Найти все документы MongoDB из списка идентификаторов, используя оператор `in` - PullRequest
0 голосов
/ 14 ноября 2018

Я пытаюсь найти документы в коллекции по идентификаторам.В большинстве предложенных ответов используется класс C #, соответствующий документу.что-то вроде здесь

var filter = Builders<Product>.Filter
    .In(p => p.Id, productObjectIDs);

у меня нет соответствующего класса C #, поэтому я использую BsonDocument

public async Task<IEnumerable<BsonDocument>> GetData(IEnumerable<int> documentIds)
{
    var collection = _mongoDatabase.GetCollection<BsonDocument>("mycollection");

    // how do set filter here
    var filterBuilder = Builders<BsonDocument>.Filter.In<int>("???????", documentIds);

    var projection = Builders<BsonDocument>.Projection
       .Include("_id")
       .Include("status")
       .Include("units");

    var result = await collection.Find(filterBuilder).Project<BsonDocument>(projection).ToListAsync().ConfigureAwait(false);
    return result;
}

Я не уверен, как мнеустановить фильтр с помощью оператора in?

1 Ответ

0 голосов
/ 01 апреля 2019

Вы можете попробовать этот фильтр:

var filter = new BsonDocument("_id", new BsonDocument("$in", new BsonArray(documetIds)));

На основе этого ответа

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...