const mongoose = require("mongoose");
const Schema = mongoose.Schema;
// подключение
mongoose.connect("******", { useNewUrlParser: true });
//создаём схему и модель для вложенной колекции.
const userScheme = new Schema({
name: String,
age: Number
});
const User = mongoose.model("User", userScheme);
//создаём схему и модель для основной колекции.
const taskScheme = new Schema({
user: [{ type: Schema.Types.ObjectId, ref: 'User' }], //свойство-ссылка на МОДЕЛЬ дочерней коллекции
text: String
});
const Task = mongoose.model("Task", taskScheme);
//вот так выглядит создание документа со ссылкой на документ из другой коллекции
const task = new Task({
user: mongoose.Types.ObjectId("5c17505032389130da703ab0"), //_id документа user который нам нужен.
text: "Task Text Example",
});
task.
save(function(err){
mongoose.disconnect(); // отключение от базы данных
if(err) return console.log(err);
console.log("Сохранен объект", task);
});
//вот так посиск с подзапросом содаржимого дочернего элемента.
Task.
findById("5c17538f570dc7339c732b3b").
populate('user').
exec(function (err, docs) {
console.log(docs);
});
переношу opencart на новый хост и не хочет подключаться к БД, вот что пишет:
No such file or directory in /home/kirby/kirby-center.ru/docs/system/library/db/mysqli.php on line 7
Почему у Вас нет этого файла? Куда он делся? Думаю, стоит проверить.// HTTP
define('HTTP_SERVER', 'http://oc-store.vl/');
// HTTPS
define('HTTPS_SERVER', 'http://oc-store.vl/');
// DIR
define('DIR_APPLICATION', 'D:/OpenServer/domains/oc-store.vl/catalog/');
define('DIR_SYSTEM', 'D:/OpenServer/domains/oc-store.vl/system/');
define('DIR_IMAGE', 'D:/OpenServer/domains/oc-store.vl/image/');
define('DIR_LANGUAGE', 'D:/OpenServer/domains/oc-store.vl/catalog/language/');
define('DIR_TEMPLATE', 'D:/OpenServer/domains/oc-store.vl/catalog/view/theme/');
define('DIR_CONFIG', 'D:/OpenServer/domains/oc-store.vl/system/config/');
define('DIR_CACHE', 'D:/OpenServer/domains/oc-store.vl/system/storage/cache/');
define('DIR_DOWNLOAD', 'D:/OpenServer/domains/oc-store.vl/system/storage/download/');
define('DIR_LOGS', 'D:/OpenServer/domains/oc-store.vl/system/storage/logs/');
define('DIR_MODIFICATION', 'D:/OpenServer/domains/oc-store.vl/system/storage/modification/');
define('DIR_UPLOAD', 'D:/OpenServer/domains/oc-store.vl/system/storage/upload/');
Насколько хороши варианты:
1. интервалом синхронить стейт корзины.
2. Синхронить стейт при событии onunload
3. Писать обработчик кликов, который будет регулировать частоту запросов (очень не хочется)
methods: {
syncCart: debounce(function() {
...
}),
},
watch: {
'$store.state.cart': {
immediate: true,
deep: true,
handler: 'syncCart',
},
},
[...] В основном предпочтительно использовать асинхронные запросы вместо синхронных из-за соображений производительности.
Синхронный запрос приводит к выполнению кода, который "блокирует" взаимодействие с вкладкой браузера до тех пор, пока запрос не будет полностью выполнен, что существенно ухудшает отклик страницы.