Встроенный документ и есть ли способ использовать ключевое слово типа в качестве имени поля модели

Этот вопрос видится немного бессмысленным. Но если есть способ, это было бы здорово для стандартизации имен полей.

  • Могу ли я использовать ключевое слово «тип» в качестве имени поля?

Я изменил имя поля на «метод» (другой вариант — «вид»). Но это могло быть поле адреса вложенного документа. Например:

address: { 
     type: { 
              type: 'string'
           }
         }

Моя модель выглядит следующим образом;

payment: {
    type: {
        type: 'string'
    },
    tally_system: {
        installment_count: {
            type: 'integer'
        }
    },
    gift_card: {
        type: 'string'
    },
    total_amount: {
        type: 'integer'
    },
    discount_ratio: {
        type: 'integer'
    },
    total_amount_after_discount: {
        type: 'float'
    }
}

Редактировать

Я могу запросить встроенный документ в Sails следующим образом. Я думаю, весьма вероятно, что я смогу вставить встроенный документ вручную без Ватерлинии и с болями. Надеемся, что недавно Waterline предоставляется для встроенного использования.

Bid.native(function(err, collection) {     
  collection
  .find({'_id' : req.param('id') })
  .nextObject(function (err, bid) {                        
     console.log(bid);
  });
});

person efkan    schedule 24.07.2014    source источник


Ответы (1)


Sails не поддерживает схемы для встроенных документов, поэтому вы не можете делать такие вещи, как:

tally_system: {
    installment_count: {
        type: 'integer'
    }
}

и ожидайте, что они будут работать так, как вы хотите. Лучшее, что вы можете сделать, это:

tally_system: {
    type: "json"
}

который объявит его как поле «json», в которое вы можете поместить произвольные объекты Javascript:

MyModel.create({ tally_system: [1,2,{abc:123}] })

При этом вы можете иметь поле с именем «тип» без проблем.

person sgress454    schedule 24.07.2014
comment
Спасибо, Скотт. Я добавил несколько слов к моему вопросу выше. Из-за того, что я не могу правильно писать коды здесь (как комментарий). Многие пытаются открыть и использовать в своем проекте MongoDB. И ваш проект очень красивый. Я просто пытаюсь использовать встроенный документ. Может быть, это опасное приключение из-за возможности пустой траты времени. Еще раз спасибо.. - person efkan; 25.07.2014
comment
Вы можете использовать встроенные данные документа в Sails. Вы просто не можете объявить встроенную схему для своих моделей. В конце концов, MongoDB — это база данных без схемы! - person sgress454; 25.07.2014