Я работаю с официальным драйвером MongoDB (10Gen). И я не могу запросить свойство MonogoDBRef. У меня есть следующие классы:
public class UserData()
{
private ObjectId id;
public ObjectId _id
{
get { return id; }
set { id = value; }
}
[BsonElement("Mail")]
public string Email { get; set; }
public string Name{ get; set; }
}
public class UserSettings()
{
private ObjectId id;
public ObjectId _id
{
get { return id; }
set { id = value; }
}
[BsonElement("usr")]
public MongoDBRef User { get; set; }
public List<SettingsUser> Settings{ get; set; }
}
Я хочу сделать запрос, для которого при наличии пользовательских данных я получаю пользовательские настройки этого пользователя.
Я пытаюсь следующее, но это не работает:
var colletion = db.GetCollection<UserSettings>("UsrSettings");
collection.Find(Query.EQ("usr", usr._id);
также я пытаюсь это:
collection.Find(Query.EQ("usr", new MongoDBRef("UsrSettings", usr._id));
Но он не компилируется, потому что MongoDBRef не является BsonValue.
Еще одна попытка:
collection.FindOne(Query.EQ("usr.$id", User._id));
И я получаю исключение: неожиданный элемент '$ ref'.
Есть идеи? или обходной путь? Спасибо!