Как запросить словарь на MongoDB - PullRequest
3 голосов
/ 29 августа 2011

У меня есть следующий класс

public class Group {
  [BsonId]
  public ObjectID _id {get; set;}
  [BsonElement("Me")]
  public Members Dictionary<ObjectId, UserGroupProperties> Members {get; set;}
}

Как запросить информацию о свойстве Members?Где Memebres.ObjectId == объект?Спасибо!

Ответы [ 2 ]

2 голосов
/ 29 августа 2011

MongoDB имеет " точечная нотация " для доступа к подобъектам или массивам.

Обычно запрос будет выглядеть примерно так:

Query.EQ("Me._id", objectid)

И найдет данные этой структуры:

{ 
  _id: ObjectId(),
  me: [
        { _id: ObjectId(): { UserGroupProperties } },
        { _id: ObjectId(): { other UserGroupProperties } }
      ]
}

Однако, похоже, что ваша структура данных немного отличается.Ваши данные похожи на следующие?

{ 
  _id: ObjectId(),
  me: {
        ObjectId(): { UserGroupProperties },
        ObjectId(): { other UserGroupProperties }
      }
}

Если это так, то вы ищете существование "me.objectid".Это совсем другое.

Здесь важно отметить, что MongoDB вернет весь соответствующий документ.Так что, если вы ищете один UserGroupProperties, ваш запрос вернет все Group.

1 голос
/ 18 января 2013

Сейчас это решение.

Вы можете проверить это здесь: MongoDb Jira

или

Сообщение в блоге Дэна Хармана

...