1. 程式人生 > >mongoose 操作mongodb資料庫三

mongoose 操作mongodb資料庫三

/*
db.order.aggregate([
    {
      $lookup:
        {
          from: "order_item",
          localField: "order_id",
          foreignField: "order_id",
          as: "items"
        }
   },
{
    $match:{"all_price":{$gte:90}}
}

])

*/


var ArticleModel=require('./model/article.js');
//查詢文章資訊

  /*
  ArticleModel.find({},function(err,docs){

    console.log(docs);
  })

  */

//查詢文章資訊 並顯示文章的分類 以及文章的作者資訊


//兩個表關聯查詢
  /*
    ArticleModel.aggregate([

      {

        $lookup: {
          from: "articlecate",
          localField: "cid",
          foreignField: "_id",
          as: "cate"
        }
      }

    ],function(err,docs){

      console.log(docs[2].cate)
    })
  */

//三個表關聯查詢
 ArticleModel.aggregate([
  {

    $lookup: {
      from: "articlecate",
      localField: "cid",
      foreignField: "_id",
      as: "cate"
    }
  },
  {

    $lookup: {
      from: "user",
      localField: "author_id",
      foreignField: "_id",
      as: "user"
    }
  }

],function(err,docs){

  console.log(JSON.stringify(docs));
})


var ArticleCateModel=require('./model/articlecate.js');


var UserModel=require('./model/user.js');


var ArticleModel=require('./model/article.js');


//分類的增加
  // var cate=new ArticleCateModel({

  //   title:'國內新聞',
  //   description:'國內新聞'
  // })

  // cate.save();


  //增加使用者


  // var user= new UserModel({
  //   username  :'lisi',
  //   password:'13214lkisisgfdsgsdsg',
  //   name:'李四',
  //   age:20,
  //   sex:'男',
  //   tel:124212142151
  // })
  // user.save();






  var article=new ArticleModel();
  article.title="這是一個國內新聞11111111"

  article.cid='5b7900bbf3965813d41216c1';   /*國內新聞*/
  article.author_id='5b7901332d552617b09af422';  
  article.author_name='張三';
  article.descripton='這是一個國內新聞11111111 此處省略300字';
  article.content='習近平訪問美國 這是一個國內新聞11111111'
  

  article.save();
var mongoose=require('./db.js');


var UserSchema = new mongoose.Schema({
    username  : { type: String, unique: true },
    password:String,
    name:String,
    age:Number,
    sex:String,
    tel:Number,
    status:{
        type:Number,
        default:1
    }
});

module.exports=mongoose.model('User',UserSchema,'user');
var mongoose=require('./db.js');


var ArticleCateSchema = new mongoose.Schema({
    title  : { type: String, unique: true },
    descripton:String,
    addtime:{
        type:Date       
    }
});


module.exports=mongoose.model('ArticleCate',ArticleCateSchema,'articlecate');
var mongoose=require('./db.js');
var Schema=mongoose.Schema;

var ArticleSchema = new Schema({
    title:{ 
        
        type: String, unique: true 
    
    },
    cid : { 
        
        type: Schema.Types.ObjectId
    
    },   /*分類 id*/

    author_id:{        
        type: Schema.Types.ObjectId
    },   /*使用者的id*/
    author_name:{        
        type:String      
    },
    descripton:String,   
    content   : String
});


module.exports=mongoose.model('Article',ArticleSchema,'article');