📅  最后修改于: 2023-12-03 15:32:56.521000             🧑  作者: Mango
MongoDB is a document-oriented database program, which means that it stores data in JSON-like documents that can have varied structures. MongoDB can be easily used with Node.js and other programming languages.
In MongoDB, it is possible to join collections using the aggregation framework. The aggregation framework is a MongoDB command-line tool used to process data inside the database. In this tutorial, you will learn how to use the MongoDB aggregation framework to join two collections.
Before we can join collections, we need to create them first. To do that, we will use the following commands in the MongoDB shell:
use test_database
db.createCollection("users")
db.createCollection("posts")
After creating the collections, we need to insert some data into them. The data inserted in the collections will be used in the join operation. We will be adding two users and some posts associated with those users.
db.users.insertOne({"_id": 1, "name": "John Doe"})
db.users.insertOne({"_id": 2, "name": "Jane Doe"})
db.posts.insertOne({"_id": 1, "title": "Post 1", "user_id": 1})
db.posts.insertOne({"_id": 2, "title": "Post 2", "user_id": 2})
These commands will create two users with unique IDs and some posts associated with them.
Now that we have created the collections and added data, we can start joining them. To join the collections, we will use the $lookup operator in the aggregation framework. The $lookup operator is a pipeline stage used to perform a left outer join between two collections.
db.users.aggregate([
{
$lookup:
{
from: "posts",
localField: "_id",
foreignField: "user_id",
as: "posts"
}
}
])
In the above example, we are joining the users and posts collection, and we are getting all the posts associated with each user. The from
field specifies the collection to join with, localField
is the field in the users
collection, and foreignField
is the corresponding field in the posts
collection. Finally, as
is the name of the new array field that contains the joined documents.
MongoDB is a powerful NoSQL database that supports joining collections using the aggregation framework. With $lookup, we can easily join collections and perform complex queries on our data. In this tutorial, you learned how to create collections, insert data, and join them using the $lookup operator.