_id
в mongoDb обычно представляет собой ObjectId
, который представляет собой шестнадцатеричный уникальный ключ из 24 символов.
Вы можете преобразовать строку _id в ObjectId и затем запросить
[{"$match":{"_id":{"$nin":[ObjectId("5c7bb1d08f999f326151df49"),ObjectId("5c7bb1d08f999f326151df49")]},"category":{"$in":["Test"]}}},{"$sample":{"size":1}}]
var result = from o in objList where intList.Contains(o.ID) select o
Непротестированный, но это будет что-то вроде этого:
var matches = from o in objList
join i in intList on o.ID equals i
select o;
@Konrad просто протестировал его, и это действительно работает - у меня просто была опечатка, где я записал "меня. Идентификатор", а не "i".
Только для полноты (и возможно легче читать?), с помощью, "где" подобный "соединению" Matt:
var matches = from o in customObjectList
from i in intList
where o.ID == i
select o;
У меня только что была похожая проблема, и я использовал решение ниже. Если у вас уже есть список объектов, вы можете удалить все, что не найдено в списке int, оставив только совпадения в objList.
objList.RemoveAll(x => !intList.Contains(x.id));