2013-10-02 4 views
4

Является ли плохой практикой использование ассоциативных массивов в mongodb? Мне любопытно, почему мангуст, похоже, не дает этого в своем определении схемы.Ассоциативный массив с схемой мангуста?

+1

Mongoose добавляет «схему», а ассоциативный массив не подразумевает никакой схемы (поскольку это документ). Если вы пропустите Mongoose, кроме использования зарезервированного поля '_id', вы можете сделать это свободно (и вы можете смешивать и сопоставлять с использованием собственного доступа MongoDB и Mongoose, если необходимо). – WiredPrairie

ответ

3

Если «ассоциативный массив» означает «объект», это прекрасно работает. Вы можете использовать только обычный старый «объект» или вы можете указать конкретные свойства, или вы можете использовать «mongoose.Schema.Types.Mixed», чтобы разрешить различные типы.

{ 
    //regular old javascript/json data types 
    created: Date, 
    //this works just fine 
    statistics: Object, 
    //or you can specify the shape of the object 
    address: {state: String, line1: String}, 
    //for the extra features you get with a true subdocument 
    nested: [SomeOtherMongooseSchema], 
    //Could be array, boolean, number, whatever. Can vary with each document. 
    grabBag: mongoose.Schema.Types.Mixed 
} 
+0

Определяет ли форма объекта какое-либо влияние на возможности запросов? Я не уверен, могу ли я потерять некоторые возможности мангуста, используя Object. Я предполагаю, что это операции на уровне поля. Как виртуальные, геттеры, сеттеры, проверки и т. Д.? – paulkon

+1

Вы все равно должны иметь возможность запрашивать все возможности, предлагаемые mongodb. Mongoose действительно только добавляет кастинг типов для запросов, но, насколько мне известно, кроме этого не добавляются и не удаляются какие-либо функции, когда дело доходит до запросов. Большая часть магии мангуста происходит во время операций записи. Мне сложно объяснить, что это может и чего не может сделать. Почему бы вам не задать вопрос, описывающий ваши конкретные варианты использования и цели, и тогда люди могут сделать конкретные предложения? Очевидно, что существует много гибкости с монгодбом. –

+0

Вы правы, я думаю, мне придется опубликовать вопрос с моим конкретным прецедентом. – paulkon

Смежные вопросы