sql >> データベース >  >> NoSQL >> MongoDB

マングース埋め込みドキュメント/DocumentsArraysid

    このようなjsonオブジェクトでpush()を実行する代わりに(マングースのドキュメントが示唆する方法):

    // create a comment
    post.comments.push({ title: 'My comment' });
    

    埋め込みオブジェクトの実際のインスタンスを作成し、push() 代わりに。次に、オブジェクトがインスタンス化されるときにmongooseが設定するため、_idフィールドを直接取得できます。完全な例は次のとおりです:

    var mongoose = require('mongoose')
    var Schema = mongoose.Schema
    var ObjectId = Schema.ObjectId
    
    mongoose.connect('mongodb://localhost/testjs');
    
    var Comment = new Schema({
        title     : String
      , body      : String
      , date      : Date
    });
    
    var BlogPost = new Schema({
        author    : ObjectId
      , title     : String
      , body      : String
      , date      : Date
      , comments  : [Comment]
      , meta      : {
            votes : Number
          , favs  : Number
        }
    });
    
    mongoose.model('Comment', Comment);
    mongoose.model('BlogPost', BlogPost);
    
    var BlogPost = mongoose.model('BlogPost');
    var CommentModel = mongoose.model('Comment')
    
    
    var post = new BlogPost();
    
    // create a comment
    var mycomment = new CommentModel();
    mycomment.title = "blah"
    console.log(mycomment._id) // <<<< This is what you're looking for
    
    post.comments.push(mycomment);
    
    post.save(function (err) {
      if (!err) console.log('Success!');
    })
    



    1. フォロワー-mongodbデータベース設計

    2. ClusterControlを使用してオープンソースデータベースを保護する方法

    3. マングースでObjectIdを生成するにはどうすればよいですか?

    4. $ elemMatch(射影)が基準に一致するすべてのオブジェクトを返すようにする