1. 程式人生 > >mongoose 實現DBRef查詢所有子類資訊

mongoose 實現DBRef查詢所有子類資訊

產品表

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

var Product = new Schema({
    image : {
              type : String
          },
    description : {
                      type : String
                  },
    price : {
                type : Number,
                require : true
            },
    probability : {
                      type : Number,
                      require : true
                  },
    status :{
                type : Number,
                require : true,
                default : 1
}, categoryId:{ type:String, require:true }, name : { type :String, require : true } },{ _id : true, autoIndex : true }); module.exports = Mongoose.model('Product',Product);

產品分類表

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

var Category = new Schema({
    child : [{
        type : Schema.Types.ObjectId,
        ref : 'Product'
}], name : { type : String, require : true }, description : { type : String, require : true }, image : { type : String, require : true } },{ _id : true, autoIndex : true }); module.exports = Mongoose.model('Category'
,Category);

我們在每新增一個商品的時候把該商品的id插入category中

var product = new Product({
        name : '侏羅紀咖啡',
        image : '/3.jpg',
        descript : '還算可以',
        price : 50.00,
        probability : 100,
        status : 1,
        categoryId : "552f76bd3e0b2dfca7989da3"
    })

    product.save(function(err){
        if(err){
            console.log(err);
        }else{
           Category.find({_id:"552f76bd3e0b2dfca7989da3"},function(err,result){
                result[0].child.push(product._id);
                result[0].save(function(err){
                   console.log('ok!')
                })
            })
        }
    })

在查詢一個分類資訊時同時找到它對應的多有商品的資訊

Category.find().populate('child').exec().then(function(result){
        console.log(result);        
    })

我們來看下輸出結果:

    [ { _id: 552f76bd3e0b2dfca7989da3,
    image: '/1.jpg',
    description: '我們的咖啡來自巴西,安全無公害,幹吃,泡著吃都行',
    name: '咖啡',
    __v: 7,
    child: 
     [ { _id: 552f76a9b396a1e8651bba8d, status: 1 },
       { _id: 552f76ff61d8370ba8490ceb,
         name: '暴龍咖啡',
         image: '/1.jpg',
         price: 20,
         probability: 100,
         categoryId: '552f76bd3e0b2dfca7989da3',
         __v: 0,
         status: 1 },
       { _id: 552f773a12831318a8d51ce4,
         name: '劍齒龍咖啡',
         image: '/2.jpg',
         price: 15,
         probability: 100,
         categoryId: '552f76bd3e0b2dfca7989da3',
         __v: 0,
         status: 1 },
       { _id: 552f776a87443f28a8e66931,
         name: '霸王龍咖啡',
         image: '/3.jpg',
         price: 15,
         probability: 100,
         categoryId: '552f76bd3e0b2dfca7989da3',
         __v: 0,
         status: 1 },
       { _id: 552f777f87443f28a8e66932,
         name: '霸王龍咖啡',
         image: '/3.jpg',
         price: 15,
         probability: 100,
         categoryId: '552f76bd3e0b2dfca7989da3',
         __v: 0,
         status: 1 },
       { _id: 552f77846a87b934a8a45cfa,
         name: '翼龍咖啡',
         image: '/3.jpg',
         price: 25,
         probability: 100,
         categoryId: '552f76bd3e0b2dfca7989da3',
         __v: 0,
         status: 1 },
       { _id: 552f779cad597a3fa8365f63,
         name: '小雞咖啡',
         image: '/3.jpg',
         price: 250,
         probability: 100,
         categoryId: '552f76bd3e0b2dfca7989da3',
         __v: 0,
         status: 1 },
       { _id: 552f77ac294f5d4ba8006b27,
         name: '侏羅紀咖啡',
         image: '/3.jpg',
         price: 50,
         probability: 100,
         categoryId: '552f76bd3e0b2dfca7989da3',
         __v: 0,
         status: 1 } ] } ] 

相關推薦

mongoose 實現DBRef查詢所有資訊

產品表 var Mongoose = require('mongoose'); var Schema = Mongoose.Schema; var Product = new Schema({ image : { type

Mysql 查詢所有

blog font cnblogs name order sel area logs div SELECT area_.id, area_.name FROM ( SELECT @r AS _id, (SELECT @r := parentid FROM

mysql遞迴查詢,mysql中從ID查詢所有(做無限分類經常用到)

由於mysql 不支援類似 oracle with ...connect的 遞迴查詢語法之前一直以為類似的查詢要麼用儲存過程要麼只能用程式寫遞迴查詢.現在發現原來一條sql語句也是可以搞定的先來看資料表的結構如下:id  name    parent_id&n

根據id查詢所有名稱

public String getParentName(int nodeID){ //和資料庫互動,得到當前節點記錄 DbRole entity = roleMapper.selectByPrimaryKey(nodeID); if(en

序列化必須所有都要實現序列化

import java.io.*; public class Pond implements Serializable { private Duck duck=new Duck(); public static void main(String [] args) {

JAVA獲取同一路徑下所有或介面實現

整個測試程式碼如下: Java程式碼   package find;   import java.io.File;   import java.io.IOException;   import java.net.URL;   import java.util.A

php 無限遞迴查詢id 根據父分類 父ID 查詢所有分類 ID

    function posterity($fid) {  global $connection; //static $children=array(); global $children; $sql = "SELECT DEPT_ID  FROM department WHERE DEPT_PAREN

遞迴查詢-簡單遞迴查詢所有

   專案中需要遞迴查詢,簡單的寫了一個,記錄一下。   具體查詢sql就不貼出來了,每個業務都不一樣,但是都差不多,基本上都是根據父類搜尋下面的子類。    public Result sele

背水一戰 Windows 10 (122) - 其它: 通過 Windows.System.Profile 命名空間下的獲取信息, 查找指定或接口的所在程序集的所有接口

enter 轉換 local frame long windows 添加 roo schema [源碼下載] 背水一戰 Windows 10 (122) - 其它: 通過 Windows.System.Profile 命名空間下的類獲取信息, 查找指定類或接口的所在程序集

list集合實現模糊查詢的工具

public class FuzzyQueryUtils {     public static List fuzzyQuery (String name,List list){         List fu

php無限分類根據頂獲取所有

 首先建立分類資訊表: CREATE TABLE IF NOT EXISTS `category` ( `categoryId` smallint(5) unsigned NOT NULL AUTO_INCREMENT, `parentId` smallint(5)

查詢所有元素、子孫元素

jquery 查詢匹配元素的所有子元素,使用children()函式; jquery 查詢匹配元素的所有子孫元素,使用find()函式; 執行下面例項,檢視兩者區別: <script type="text/javascript" src="http

sql遞迴查詢所有單位

with org(OrgID,OrgName,ParentID,[level]) as (select orgid,orgname,parentid,0 as [level] from SYSOrgwhere orgname like ''%'+ @DW +'%''unio

Android View的繼承體系大全(包含125個view的所有)(by 星空武哥)

       安卓的view是一個龐大是繼承體系,今天花了一個晚上我總結一下view的繼承體系。view的直接繼承子類有12個,間接繼承子類有113個。今天我就總結一下所有的view的子類,希

在spring下獲取分類下的所有

我們一般使用java的時候更多的時候是獲取子類的父類是誰。或者多型的使用具體子類。但是有時候的業務會要求你拿到父類下的所有子類。那麼該怎麼做呢? 注意:子類不一定在同一個包裡。 1.在所有的子類上加上自定義註解,全域性獲取使用自定義註解的類。即為所有的子類。 該方式未使用,但肯定可以實現。暫不做討論,有機

php獲取分類下面的所有方法

獲取分類下面的所有子類方法: static function getMenuTree($arrCat, $parent_id = 0, $level = 0,$all=True)

mysql查詢所有節點,後代

總結查詢mysql下 的所有子節點。。。希望一起學習。。在Oracle 裡 Hierarchical Queries 通過CONNECT BY 可以查詢所有當前節點下的所有子節點。但MySQL的目前版本中還沒有對應的功能。在MySQL中如果是有限的層次,比如我們事先如果可以確

postgresql資料庫查詢所有索引詳細資訊,包括描述資訊

把裡邊的public改成相應模式名(預設為public,可不改) table_name改成對應表名稱 SELECT A.SCHEMANAME, A.TABLENAME, A.INDEXNAME, A.TABLESPACE, A.INDEXDEF, B.AMNAME,

SQL 語句遞迴查詢 With AS 查詢所有節點

create table #EnterPrise (   Department nvarchar(50),--部門名稱   ParentDept nvarchar(50),--上級部門   DepartManage nvarchar(30)--部門經理 ) insert into #EnterPri

實現Parcelable介面,繼承父需要實現的操作

show me the code public class A implements Parcelable { public String str; public boolea