Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   Что такое pluralizes? (https://javascript.ru/forum/node-js-io-js/72976-chto-takoe-pluralizes.html)

Sinevik 11.03.2018 10:36

Что такое pluralizes?
 
Прохожу американские курсы онлайн по программированию.
Задал вопрос в "вопросы и ответы"
Здесь поиск по базе с помощью библиотеки mongoose

Todo.find().then((a) => {
console.log(a);
done();
}).catch((e) => done(e));

How does it know what to look for in the Todos collection and not in the Users collection?


Пришел ответ:
The collection name comes from the first argument we pass to mongoose.model. Mongoose converts it to lowercase and then pluralizes it, so "Todo" becomes "todos"

Вроде все с большего понятно, единственное что такое pluralizes? Как это работает

Белый шум 11.03.2018 13:00

plural => множественное число

Audaxviator 11.03.2018 14:31

Ну, во-первых, TODO - это устоявшаяся идиома (от "to do", т.е. "делать"), означающая нечто вроде "что-то конкретное на этом месте будет сделано".
Во-вторых, авторы драйвера Mongoose стараются предложить пользователям некую унифицированную логику. А именно:
Слово "модель" подразумевает, что это модель единичного объекта ("инстанса", так сказать) - следовательно, вполне логично давать имя модели в единственном числе - "Book" (но это не обязательно, и любой упёртый кодер может назвать модель "Books").
Слово "коллекция" подразумевает в качестве содержания множество однотипных объектов - следовательно, вполне логично давать имена коллекциям в базе во множественном числе - "books" (но это не обязательно, и тот же упёртый кодер может создать в самой базе коллекцию с именем "book").
Вот и всё.
Основываясь на такого рода рассуждениях, авторы драйвера научили его преобразовывать - во время создания коллекции (и, соответственно, последующем обращении к ней) - имя модели к множественному числу (она даже делает это "грамотно", то есть не только дописывает букву "s" к хвосту, но от имени модели "Galery", допустим, создаёт коллекцию "galeries").
Извините за внимание.


Часовой пояс GMT +3, время: 10:18.