zoukankan      html  css  js  c++  java
  • mongodb-4.4.10版本DBRef

    mongodb增删改查入门,请参考我的另一篇博文《mongodb-4.4.10版本与MySQL的SQL语法对比,以及mongodb增删改查入门demo

    在mongo中,单个文档最大不能超过16MB,否则就应该考虑使用引用(DBRef)了,在主表里存储一个id值,指向另一个表中的id值。

    DBRef 语法: { "$ref" : <value>, "$id" : <value>, "$db" : <value> }

              $ref:引用文档所在的集合的名称;

              $id:所在集合的_id字段值;

              $db:可选,集合所在的数据库实例;

    例子:

    {
      "username":"ZhangSan",
      "age":20,
      "blog":{
          "$ref":"博客所在的集合名字, 假设是blog",
          "$id":"博客所在的集合里的某一行文档id主键,假设是100",
          "$db":"博客所在的数据库名字,假设是my_blog_db"
      }
    }

    那上面的例子中,blog这个字段的值是一个DBRef,但是DBRef自己是不会去关联一个值的,那怎么找到这个博客内容值呢?

    >var dbref = db.users.find({"username":"ZhangSan"})       // 第一步找到叫ZhangSan这个用户的文档

    >dbref.blog                                                                       // 此时查看zhangsan的值就是一个DBRef的值

    DBRef("blog","100","my_blog_db")

    >db[dbref.$ref].findOne({ "_id":dbref.$id })                      // 就能查出相应的值

    end

    支付宝扫一扫,为女程序员打赏!
    作者:梦幻朵颜
    版权:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    X
    W
    J
    A
    Q
    P
    B
    排列和组合的求解
    深度学习之序列处理
    32位和64位数据类型大小对比
  • 原文地址:https://www.cnblogs.com/zhuwenjoyce/p/15487296.html
Copyright © 2011-2022 走看看