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

posted on 2021-10-30 20:41  梦幻朵颜  阅读(58)  评论(0编辑  收藏  举报