MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Làm thế nào để điền một tài liệu con trong mongoose sau khi tạo nó?

Để điền các tài liệu con được tham chiếu, bạn cần xác định rõ ràng tập hợp tài liệu mà ID tham chiếu đến (như created_by: { type: Schema.Types.ObjectId, ref: 'User' } ).

Do tham chiếu này được xác định và lược đồ của bạn cũng được xác định rõ ràng, bây giờ bạn có thể chỉ cần gọi populate như thường lệ (ví dụ:populate('comments.created_by') )

Bằng chứng về mã khái niệm:

// Schema
var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var UserSchema = new Schema({
  name: String
});

var CommentSchema = new Schema({
  text: String,
  created_by: { type: Schema.Types.ObjectId, ref: 'User' }
});

var ItemSchema = new Schema({
   comments: [CommentSchema]
});

// Connect to DB and instantiate models    
var db = mongoose.connect('enter your database here');
var User = db.model('User', UserSchema);
var Comment = db.model('Comment', CommentSchema);
var Item = db.model('Item', ItemSchema);

// Find and populate
Item.find({}).populate('comments.created_by').exec(function(err, items) {
    console.log(items[0].comments[0].created_by.name);
});

Cuối cùng lưu ý rằng populate chỉ hoạt động cho các truy vấn, vì vậy trước tiên bạn cần chuyển mục của mình vào một truy vấn và sau đó gọi nó:

item.save(function(err, item) {
    Item.findOne(item).populate('comments.created_by').exec(function (err, item) {
        res.json({
            status: 'success',
            message: "You have commented on this item",
            comment: item.comments.id(comment._id)
        });
    });
});


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách tốt nhất để lưu trữ ngày / giờ trong mongodb

  2. MongoDB - Tạo mối quan hệ

  3. MongoDB:mongoimport mất kết nối khi nhập các tệp lớn

  4. MongoDB người dùng và mật khẩu mặc định là gì?

  5. mongo.so:> ký hiệu không xác định:php_json_encode trong Không xác định trên dòng 0. Sau khi cài đặt trình điều khiển mongo cho php