- vừa được xem lúc

One to One Relationship MongoDB (Linking)

0 0 6

Người đăng: Nguyễn Đức Mỹ

Theo Viblo Asia

Learn MongoDB by short way

Tools

  • Docker
  • MongoDB Image from Docker Hub
  • mongosh

One to One Relationship (Linking)

Schema

author - _id (auto generate) - name - age address - _id - user_id (fk) - street - city

Mongo SH

Connection:
$ mongosh mongodb://docker:_@.com:55000
Pipeline:
show dbs; use test;
db.author.drop();
db.address.drop();
db.createCollection('author');
db.createCollection('address');
/* Preparing data for author */
db.author.insertMany([ { name: String('Tran Van A'), age: NumberInt(20) }, { name: String('Nguyen Van B'), age: NumberInt(30) }, { name: String('Le Thi C'), age: NumberInt(40) }
]);
db.address.insertOne( { street: 'Hai Bà Trưng', city: 'HCM' }
);
db.author.find({}).pretty();
db.address.find({}).pretty();
db.author.findOne({ name: 'Tran Van A'}); // Get all field with name 
db.author.findOne({ name: 'Tran Van A'}, {_id: true}); // Get both Key and Value
db.author.findOne({ name: 'Tran Van A'},{_id: true})._id; // Get only Value
// Add addresss for Auth name Tran Van A
db.address.insertOne( { user_id: db.author.findOne({ name: 'Tran Van A'},{_id: true})._id, street: 'Nguyen Hue', city: 'HCM' }
);

db.address.find({}).pretty();

// Update Address without Author

db.address.insertOne( { street: 'Hai Bà Trưng', city: 'HCM' }
);
db.address.find({}).pretty(); // Update Address to Author with Name
db.address.updateOne({ street: 'Hai Bà Trưng' }, { $set: { user_id: db.author.findOne({ name: 'Nguyen Van B'},{_id: true})._id }
}); db.address.find({}).pretty(); // From Address get User
db.address.aggregate([ { $lookup: { from: "author", // Author table localField: "user_id", // Local Field from Address foreignField: "_id", // Author table, Col _id as: "users_list" // Descrise User Detail } }
]).pretty(); // From author get the address
db.author.aggregate([{ $lookup: { from: "address", // Address table localField: "_id", // Local Field from Address foreignField: "user_id", // Author table, Col _id as: "address_info" // Descrise User Detail }
}]); db.author.find({});
db.address.find({});

Tham khảo https://github.com/Ducmy/learn-mongodb-by-line/blob/main/README.md

Bình luận

Bài viết tương tự

- vừa được xem lúc

Được rồi, đi thôi!!! VPS free nè (^.^) [P1]

Bạn là sinh viên, bạn là lập trình viên khó khăn về mặt tài chính, bạn không có xiền thuê VPS, được rồi hãy đến đây!!!. Hôm nay mình sẽ hướng dẫn cho các bạn cách tạo VPS free bằng Github Workflow & N

0 0 48

- vừa được xem lúc

[Linux] Iptables trong hệ thống Linux

IPtables là ứng dụng tường lửa miễn phí trong Linux, cho phép thiết lập các quy tắc riêng để kiểm soát truy cập, tăng tính bảo mật. Khi sử dụng máy chủ, tường lửa là một trong những công cụ quan trọng

0 0 35

- vừa được xem lúc

Từ bug format sai chuỗi số khi nhập bằng bàn phím tiếng Nhật, tới IME và các sự kiện composition trong JS

"Tự nhiên tui thấy hiện tượng lạ”. Khi nhập liệu một chuỗi các kí tự vào thẻ input, thông thường chúng ta nhập thế nào thì hiển thị thế ấy, không làm phép biến đổi gì cả.

0 0 37

- vừa được xem lúc

Tạo Rijndael S-box sử dụng trong AES

I. Rijndael S-box là gì .

0 0 25

- vừa được xem lúc

Giới thiệu về lỗ hổng tràn bộ đệm (Buffer Overflow) và cách khai thác

Khái niệm. Lỗ hổng tràn bộ đệm (Buffer Overflow) là lỗ hổng trong lập trình, cho phép dữ liệu được ghi vào một buffer có thể tràn ra ngoài buffer đó, ghi đè lên dữ liệu khác và dẫn tới hoạt động bất t

0 0 32

- vừa được xem lúc

Share Libraries Hijacking trên Linux

1. Cách thức hoạt động của Share Libraries.

0 0 18