Можно использовать обеспеченные системные представления, чтобы сделать это:
, например,
select * from INFORMATION_SCHEMA.COLUMNS
where table_name = '[table name]'
альтернативно, можно использовать систему proc sp_help
, например,
sp_help '[table name]'
Более или менее, они дают вам тот же результат. Вопрос лишь в том, какой путь вы выберете для этого.
Первый может быть более популярным, поскольку это просто смесь двух уже распространенных шаблонов:
(function closure() {
var foo = 'private';
/* ... */
}())
var singleton = {
bar : 'public'
};
Однако прототипа
цепочки будет Преимущество второго шаблона, так как он имеет собственный конструктор.
var singleton = new function Singleton() { };
assert(singleton.constructor !== Object);
singleton.constructor.prototype.foo = 'bar';
assert(singleton.foo === 'bar');
Я не вижу существенной разницы между ними. Я бы предпочел второй вариант просто потому, что в нем гораздо меньше беспорядка с пунктуацией.
С другой стороны, подход «модульного шаблона» кажется наиболее распространенным и становится широко известным шаблоном (из-за роста JQuery). Возможно, лучше придерживаться этого признанного шаблона не потому, что он имеет больше технических достоинств, чем другой подход, а просто потому, что он, вероятно, будет более узнаваемым (несмотря на тяжелую пунктуацию).
Дуглас Крокфорд пишет о втором. Как говорит Грег в своих комментариях, я думал, что это довольно распространено, и я использовал его в прошлом.
Изменить: чтобы на самом деле ответить на ваш вопрос - нет недостатков, оба функционально эквивалентны (оба создают закрытие, содержащее «частные переменные» и публичное предоставление других переменных / методов), и имеют точно такие же характеристики поддержки и производительности браузера. Все сводится к синтаксису - в основном, к тому, где вы помещаете ()
, чтобы фактически вызвать эту функцию и получить ваше закрытие, и используете ли вы ключевое слово new
.
Оболочка mongodb javascript документирована по адресу http://docs.mongodb.org/manual/reference/method/
Если вы хотите получить назад только определенные поля объекта, вы можете использовать
db.collection.find( { }, {fieldName:true});
Если, с другой стороны, вы ищете объекты, которые содержат определенное поле, вы можете подать в суд
db.collection.find( { fieldName : { $exists : true } } );
-121--2410585- Я не уверен, как перевести его в C # (Я работаю над этим)
Это версия Haskell
minAndMax :: Ord a => [a] -> (a,a)
minAndMax [x] = (x,x)
minAndMax (x:xs) = (min a x, max b x)
where (a,b) = minAndMax xs
Версия C # должна включать Агрегировать
некоторые способы (я думаю).
В этом случае вы используете только один объект экземпляра этого «класса» . Поэтому может потребоваться взглянуть на то, что Дуглас Крокфорд думает о том, что ставит новый
непосредственно перед функцией
:
Используя новый для вызова функции, объект удерживается на бесполезном
прототипе
объекта. Это растрачивает память без компенсационного преимущества. Если мы не используем новый, мы не будем хранить потерянный объект прототипа в цепочке. Таким образом, вместо этого мы будем вызывать фабричную функцию правильным путь, используя ().
Так по известному javascript архитектора Yahoo! вы должны использовать первый метод, и у вас есть его причины.