mirror of
https://github.com/LeCoupa/awesome-cheatsheets.git
synced 2026-01-28 14:18:12 -08:00
Compare commits
7 Commits
b91e73ddf7
...
21f02fcad0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
21f02fcad0 | ||
|
|
5ff48033e1 | ||
|
|
6c3b6ee90e | ||
|
|
7e9e6af408 | ||
|
|
0ee3753e2f | ||
|
|
aa488b84d3 | ||
|
|
cb9ca87a4b |
@@ -124,6 +124,7 @@ Feel free to take a look. You might learn new things. They have been designed to
|
||||
- [Nginx](tools/nginx.sh)
|
||||
- [PM2](tools/pm2.sh)
|
||||
- [Ubuntu](tools/ubuntu.sh)
|
||||
- [Firebase CLI](tools/firebase_cli.md)
|
||||
</details>
|
||||
|
||||
## 🙌🏼 How to Contribute?
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
// MAIN.
|
||||
|
||||
php artisan clear-compiled // Remove the compiled class file
|
||||
php artisan db // Start a new database CLI session
|
||||
php artisan docs // Access the Laravel documentation
|
||||
php artisan down // Put the application into maintenance mode
|
||||
php artisan dump-server // Start the dump server to collect dump information.
|
||||
php artisan env // Display the current framework environment
|
||||
@@ -43,6 +45,9 @@ php artisan config:clear // Remove the configuration cache file
|
||||
// DB
|
||||
|
||||
php artisan db:seed // Seed the database with records
|
||||
php artisan db:show // Display information about the given database
|
||||
php artisan db:table // Display information about the given database table
|
||||
php artisan db:wipe // Drop all tables, views, and types
|
||||
|
||||
// EVENT
|
||||
|
||||
@@ -54,9 +59,10 @@ php artisan key:generate // Set the application key
|
||||
|
||||
// MAKE
|
||||
|
||||
php artisan make:auth // Scaffold basic login and registration views and routes
|
||||
php artisan make:cast // Create a new custom Eloquent cast class
|
||||
php artisan make:channel // Create a new channel class
|
||||
php artisan make:command // Create a new Artisan command
|
||||
php artisan make:component // Create a new view component class
|
||||
php artisan make:controller // Create a new controller class
|
||||
php artisan make:event // Create a new event class
|
||||
php artisan make:exception // Create a new custom exception class
|
||||
@@ -74,6 +80,7 @@ php artisan make:provider // Create a new service provider class
|
||||
php artisan make:request // Create a new form request class
|
||||
php artisan make:resource // Create a new resource
|
||||
php artisan make:rule // Create a new validation rule
|
||||
php artisan make:scope // Create a new scope class
|
||||
php artisan make:seeder // Create a new seeder class
|
||||
php artisan make:test // Create a new test class
|
||||
|
||||
@@ -86,6 +93,10 @@ php artisan migrate:reset // Rollback all database migrations
|
||||
php artisan migrate:rollback // Rollback the last database migration
|
||||
php artisan migrate:status // Show the status of each migration
|
||||
|
||||
// MODEL
|
||||
php artisan model:prune // Prune models that are no longer needed
|
||||
php artisan model:show // Show information about an Eloquent model
|
||||
|
||||
// NOTIFICATIONS
|
||||
|
||||
php artisan notifications:table // Create a migration for the notifications table
|
||||
@@ -100,13 +111,19 @@ php artisan package:discover // Rebuild the cached package manifest
|
||||
|
||||
// QUEUE
|
||||
|
||||
php artisan queue:batches-table // Create a migration for the batches database table
|
||||
php artisan queue:clear // Delete all of the jobs from the specified queue
|
||||
php artisan queue:failed // List all of the failed queue jobs
|
||||
php artisan queue:failed-table // Create a migration for the failed queue jobs database table
|
||||
php artisan queue:flush // Flush all of the failed queue jobs
|
||||
php artisan queue:forget // Delete a failed queue job
|
||||
php artisan queue:listen // Listen to a given queue
|
||||
php artisan queue:monitor // Monitor the size of the specified queues
|
||||
php artisan queue:prune-batches // Prune stale entries from the batches database
|
||||
php artisan queue:prune-failed // Prune stale entries from the failed jobs table
|
||||
php artisan queue:restart // Restart queue worker daemons after their current job
|
||||
php artisan queue:retry // Retry a failed queue job
|
||||
php artisan queue:retry-batch // Retry the failed jobs for a batch
|
||||
php artisan queue:table // Create a migration for the queue jobs database table
|
||||
php artisan queue:work // Start processing jobs on the queue as a daemon
|
||||
|
||||
@@ -116,9 +133,26 @@ php artisan route:cache // Create a route cache file for faster route r
|
||||
php artisan route:clear // Remove the route cache file
|
||||
php artisan route:list // List all registered routes
|
||||
|
||||
// SAIL
|
||||
|
||||
php artisan sail:install // Install Laravel Sail's default Docker Compose file
|
||||
php artisan sail:publish // Publish the Laravel Sail Docker files
|
||||
|
||||
// SANCTUM
|
||||
|
||||
php artisan sanctum:prune-expired // Prune tokens expired for more than specified number of hours.
|
||||
|
||||
// SCHEDULE
|
||||
|
||||
php artisan schedule:clear-cache // Delete the cached mutex files created by scheduler
|
||||
php artisan schedule:list // List the scheduled commands
|
||||
php artisan schedule:run // Run the scheduled commands
|
||||
php artisan schedule:test // Run a scheduled command
|
||||
php artisan schedule:work // Start the schedule worker
|
||||
|
||||
// SCHEMA
|
||||
|
||||
php artisan schema:dump // Dump the given database schema
|
||||
|
||||
// SESSION
|
||||
|
||||
@@ -128,6 +162,10 @@ php artisan session:table // Create a migration for the session database
|
||||
|
||||
php artisan storage:link // Create a symbolic link from "public/storage" to "storage/app/public"
|
||||
|
||||
// STUD
|
||||
|
||||
php artisan stub:publish // Publish all stubs that are available for customization
|
||||
|
||||
// VENDOR
|
||||
|
||||
php artisan vendor:publish // Publish any publishable assets from vendor packages
|
||||
|
||||
245
databases/mongoose.js
Normal file
245
databases/mongoose.js
Normal file
@@ -0,0 +1,245 @@
|
||||
/* *****************************************************************
|
||||
* Mongoose is a MongoDB object modeling tool designed to work in an asynchronous environment.
|
||||
* Mongoose supports both promises and callbacks.
|
||||
* ****************************************************************/
|
||||
|
||||
// Import Mongoose
|
||||
const mongoose = require("mongoose");
|
||||
|
||||
/* *****************************************************************
|
||||
List of Mongoose Data Types:
|
||||
String
|
||||
Number
|
||||
Date
|
||||
Buffer
|
||||
Boolean
|
||||
Mixed
|
||||
ObjectId
|
||||
Array
|
||||
Decimal128
|
||||
Map
|
||||
Schema
|
||||
UUID
|
||||
******************************************************************/
|
||||
|
||||
/* *****************************************************************
|
||||
* Schema
|
||||
* A schema is a blueprint for a model.
|
||||
* It defines the structure of the document, default values, validators, etc.
|
||||
* ****************************************************************/
|
||||
|
||||
// Define schema for the a collection
|
||||
const productSchema = new mongoose.Schema({
|
||||
name: {
|
||||
type: String,
|
||||
immutable: true, // This field cannot be changed after creation
|
||||
},
|
||||
price: {
|
||||
type: Number,
|
||||
min: 0, // Minimum value is 0
|
||||
max: 10000, // Maximum value is 10000
|
||||
required: true, // Not specifying a required field will result in validation error
|
||||
},
|
||||
category: {
|
||||
type: String,
|
||||
enum: ["fruit", "vegetable", "dairy"], // Only these values are allowed for 'category'
|
||||
},
|
||||
tags: [
|
||||
// Array of String
|
||||
{
|
||||
type: String,
|
||||
minLength: 2, // Minimum length of a single tag is 2
|
||||
maxlength: 10, // Maximum length of a single tag is 10
|
||||
},
|
||||
],
|
||||
createdAt: {
|
||||
type: Date,
|
||||
// WRONG!
|
||||
// default: Date.now(), // This results in the current date being set (as a static value) when the schema is compiled
|
||||
|
||||
// Correct!
|
||||
default: () => Date.now(), // We instead use a getter function that returns the current date when called
|
||||
},
|
||||
});
|
||||
|
||||
// Create a model from the schema
|
||||
const Product = mongoose.model("Product", productSchema);
|
||||
// We can now use the model to create new documents in the 'products' collection
|
||||
|
||||
/* *****************************************************************
|
||||
* Promises
|
||||
* ****************************************************************/
|
||||
|
||||
Product.create({
|
||||
name: "guava",
|
||||
price: 10,
|
||||
category: "fruit",
|
||||
tags: ["green", "sweet", "fresh"],
|
||||
});
|
||||
|
||||
Product.insertMany([
|
||||
{
|
||||
name: "apple",
|
||||
price: 5,
|
||||
category: "fruit",
|
||||
tags: ["red", "sweet"],
|
||||
},
|
||||
{
|
||||
name: "banana",
|
||||
price: 3,
|
||||
category: "fruit",
|
||||
tags: ["yellow", "sweet"],
|
||||
},
|
||||
{
|
||||
name: "broccoli",
|
||||
price: 2,
|
||||
category: "vegetable",
|
||||
tags: ["green", "healthy"],
|
||||
},
|
||||
{
|
||||
name: "milk",
|
||||
price: 4,
|
||||
category: "dairy",
|
||||
tags: ["white", "healthy"],
|
||||
},
|
||||
]);
|
||||
|
||||
Product.find(); // Get documents in 'product' colelction
|
||||
|
||||
Product.find({ name: "guava" }); // Get documents where name = 'guava'
|
||||
|
||||
Product.find({ price: { $gt: 5, $lt: 10 } }); // Get documents where 5 < price < 10
|
||||
|
||||
Product.find({ name: "banana" }).select({ name: 1, price: 1 }); // Get documents where name = 'banana' and only return name and price
|
||||
|
||||
Product.countDocuments({ category: "vegetables" }); // Get count of documents where category = 'vegetables'
|
||||
|
||||
Product.updateOne({ name: "guava" }, { price: 15 }); // Update the price of the document where name = 'guava' to 15
|
||||
|
||||
Product.deleteOne({ name: "guava" }); // Delete the document where name = 'guava'
|
||||
|
||||
Product.deleteMany({ category: "fruit" }); // Delete all documents where category = 'fruit'
|
||||
|
||||
/* *****************************************************************
|
||||
* Aggregation
|
||||
* The aggregation pipeline refers to a specific flow of operations that processes, transforms, and returns results.
|
||||
* In a pipeline, successive operations are informed by the previous result.
|
||||
* Check out the MongoDB documentation at: https://www.mongodb.com/docs/manual/aggregation/
|
||||
* ****************************************************************/
|
||||
|
||||
// * $match
|
||||
// The following aggration pipeline returns all products where price > 80 AND price < 120.
|
||||
let pipeline = [
|
||||
{
|
||||
$match: {
|
||||
price: {
|
||||
$gt: 80,
|
||||
$lt: 120,
|
||||
},
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
// or you can use:
|
||||
pipeline = [
|
||||
{
|
||||
$match: {
|
||||
price: {
|
||||
$and: [{ $gt: 80 }, { $lt: 120 }],
|
||||
},
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
// Similarly, you can use $or:
|
||||
pipeline = [
|
||||
{
|
||||
$match: {
|
||||
category: {
|
||||
$or: [{ $eq: "fruit" }, { $eq: "vegetable" }],
|
||||
},
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
// * $group
|
||||
// The following aggregation pipeline returns the total number of products created less than a year ago, in each category.
|
||||
pipeline = [
|
||||
{
|
||||
$match: {
|
||||
date: {
|
||||
$gte: new Date(new Date().setFullYear(new Date().getFullYear() - 1)),
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
$group: {
|
||||
_id: "$category",
|
||||
count: { $sum: 1 },
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
// * $sort
|
||||
// The following aggregation pipeline returns top 10 most expensive products.
|
||||
// Note: The $sort stage must come before $limit.
|
||||
pipeline = [
|
||||
{
|
||||
$sort: {
|
||||
price: -1,
|
||||
},
|
||||
},
|
||||
{
|
||||
$limit: 10,
|
||||
},
|
||||
];
|
||||
|
||||
// * $project
|
||||
// To get the name and price of all products along with their ObjectId:
|
||||
pipeline = [
|
||||
{
|
||||
$project: {
|
||||
name: 1,
|
||||
price: 1,
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
// or you can exclude all other fields:
|
||||
pipeline = [
|
||||
{
|
||||
$project: {
|
||||
category: 0, // 0 means exclude
|
||||
tags: 0,
|
||||
date: 0,
|
||||
},
|
||||
},
|
||||
];
|
||||
// Note: You may not use both 0 and 1 in the same projection
|
||||
// other than _id, which is included by default:
|
||||
pipeline = [
|
||||
{
|
||||
$project: {
|
||||
_id: 0, // exclude ObjectId as well
|
||||
name: 1,
|
||||
price: 1,
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
// * $unwind
|
||||
// The following aggregation returns a new document for 'guava' for each of its tags.
|
||||
pipeline = [
|
||||
{
|
||||
$match: {
|
||||
name: "guava",
|
||||
},
|
||||
},
|
||||
{
|
||||
$unwind: {
|
||||
path: "$tags", // Name of array field that we want to unwind
|
||||
includeArrayIndex: "arrayIndex", // This will add a new field 'arrayIndex' to each document
|
||||
preserveNullAndEmptyArrays: true, // This will return a document for each tag, even if the 'tags' is null or empty
|
||||
},
|
||||
},
|
||||
];
|
||||
140
tools/firebase_cli.md
Normal file
140
tools/firebase_cli.md
Normal file
@@ -0,0 +1,140 @@
|
||||
# Firebase CLI Guide
|
||||
|
||||
Firebase CLI (Command Line Interface) is a powerful tool that allows developers to interact with Firebase services and manage their Firebase projects directly from the command line. It provides a convenient and efficient way to deploy projects, manage databases, configure authentication, and more, streamlining the development and deployment processes.
|
||||
|
||||
## Installation
|
||||
|
||||
To use the Firebase CLI, you need to have Node.js and npm (Node Package Manager) installed on your system. Follow the steps below to install the Firebase CLI:
|
||||
|
||||
1. Install Node.js and npm by downloading the installer from the [official Node.js website](https://nodejs.org/en/download/) and following the installation instructions for your operating system.
|
||||
|
||||
2. Once Node.js and npm are installed, open your terminal or command prompt and run the following command to install the Firebase CLI globally:
|
||||
|
||||
```
|
||||
npm install -g firebase-tools
|
||||
```
|
||||
|
||||
This command will download and install the Firebase CLI package from the npm registry.
|
||||
|
||||
3. After the installation is complete, you can verify that the Firebase CLI is installed correctly by running the following command:
|
||||
|
||||
```
|
||||
firebase --version
|
||||
```
|
||||
|
||||
If the installation was successful, you will see the version number of the Firebase CLI printed in the terminal.
|
||||
|
||||
Congratulations! You have successfully installed the Firebase CLI.
|
||||
|
||||
## Usage
|
||||
|
||||
The Firebase CLI allows you to interact with Firebase services and manage your Firebase projects from the command line. Here are some common tasks you can perform using the Firebase CLI:
|
||||
|
||||
- Initialize a new Firebase project in your current directory.
|
||||
- Deploy your Firebase project to Firebase hosting.
|
||||
- Manage Firebase Authentication, Realtime Database, Cloud Firestore, Cloud Functions, and other Firebase services.
|
||||
- Configure Firebase project settings.
|
||||
- Interact with Firebase emulators for local development and testing.
|
||||
|
||||
To use the Firebase CLI, open your terminal or command prompt and run the `firebase` command followed by the desired command and options.
|
||||
|
||||
Here's an example of the basic usage:
|
||||
|
||||
```
|
||||
firebase <command> [options]
|
||||
```
|
||||
|
||||
Replace `<command>` with the specific Firebase command you want to execute, and `[options]` with any additional options or flags required for that command.
|
||||
|
||||
For more detailed usage information, you can run the following command:
|
||||
|
||||
```
|
||||
firebase help
|
||||
```
|
||||
|
||||
This command will display the available Firebase commands and provide detailed information about each command.
|
||||
|
||||
## Commands
|
||||
|
||||
Here are the commonly used Firebase CLI commands along with a brief explanation, syntax, and an example for each command:
|
||||
|
||||
- `firebase init`: Initializes a new Firebase project in the current directory.
|
||||
|
||||
- Syntax: `firebase init [options]`
|
||||
- Example: `firebase init hosting` initializes Firebase Hosting for the current project.
|
||||
|
||||
- `firebase deploy`: Deploys your Firebase project to Firebase hosting or other Firebase services.
|
||||
|
||||
- Syntax: `firebase deploy [options]`
|
||||
- Example: `firebase deploy --only hosting` deploys only the Firebase Hosting content.
|
||||
|
||||
- `firebase serve`: Starts local development servers and Firebase emulators.
|
||||
|
||||
- Syntax: `firebase serve [options]`
|
||||
- Example: `firebase serve --only functions,hosting` starts the Firebase emulators for functions and hosting.
|
||||
|
||||
- `firebase login`: Authenticates the Firebase CLI with your Firebase account.
|
||||
|
||||
- Syntax: `firebase login [options]`
|
||||
- Example: `firebase login --no-localhost` initiates an interactive login session without connecting to localhost.
|
||||
|
||||
- `firebase logout`: Logs out from the Firebase CLI.
|
||||
|
||||
- Syntax: `firebase logout [options]`
|
||||
- Example: `firebase logout` logs out the currently authenticated user.
|
||||
|
||||
- `firebase use`: Sets the active Firebase project for the current directory.
|
||||
|
||||
- Syntax: `firebase use <project_id> [options]`
|
||||
- Example: `firebase use my-project` sets "my-project" as the active Firebase project.
|
||||
|
||||
- `firebase functions`: Interacts with Firebase Cloud Functions.
|
||||
|
||||
- Syntax: `firebase functions:command [options]`
|
||||
- Example: `firebase functions:delete [function_name]` deletes all functions that match the specified name in all regions.
|
||||
|
||||
- `firebase database`: Interacts with Firebase Realtime Database.
|
||||
|
||||
- Syntax: `firebase database:command [options]`
|
||||
- Example: `firebase database:get /users` retrieves data from the Firebase Realtime Database.
|
||||
|
||||
- `firebase firestore`: Interacts with Firebase Cloud Firestore.
|
||||
|
||||
- Syntax: `firebase firestore:command [options]`
|
||||
- Example: `firebase firestore:delete collection/document` deletes a document from the Firestore database.
|
||||
|
||||
- `firebase auth`: Interacts with Firebase Authentication.
|
||||
|
||||
- Syntax: `firebase auth:command [options]`
|
||||
- Example: `firebase auth:export users.csv` exports user data to a CSV file.
|
||||
|
||||
- `firebase hosting`: Interacts with Firebase Hosting.
|
||||
|
||||
- Syntax: `firebase hosting:command [options]`
|
||||
- Example: `firebase hosting:disable` disables Firebase Hosting for the current project.
|
||||
|
||||
- `firebase remoteconfig`: Interacts with Firebase Remote Config.
|
||||
|
||||
- Syntax: `firebase remoteconfig:command [options]`
|
||||
- Example: `firebase remoteconfig:get template` retrieves the Remote Config template.
|
||||
|
||||
- `firebase ext`: Interacts with Firebase Extensions.
|
||||
|
||||
- Syntax: `firebase ext:command [options]`
|
||||
- Example: `firebase ext:install firebase/delete-user-data` installs the Firebase Extension named "firebase/delete-user-data".
|
||||
|
||||
- `firebase appdistribution`: Interacts with Firebase App Distribution.
|
||||
|
||||
- Syntax: `firebase appdistribution:command [options]`
|
||||
- Example: `firebase appdistribution:testers:add` Adds testers to the project.
|
||||
|
||||
- `firebase use --add`: Adds an existing Firebase project to the current directory
|
||||
|
||||
- Syntax: `firebase use --add`
|
||||
- Example: `firebase use --add` interactively adds an existing Firebase project.
|
||||
|
||||
- `firebase projects:create`: Creates a new Firebase project.
|
||||
- Syntax: `firebase projects:create [options]`
|
||||
- Example: `firebase projects:create --display-name "My Project"` creates a new Firebase project with the given display name.
|
||||
|
||||
These are just a few examples of the available commands. You can explore more commands and their options by running `firebase help` or visiting the [official Firebase CLI documentation](https://firebase.google.com/docs/cli).
|
||||
Reference in New Issue
Block a user