dbref数据引用

官方文档

  1. https://docs.mongodb.com/manual/reference/database-references/#dbrefs

使用DBref

  1. { $ref : , $id : , $db : }

三个字段意义:

  • $ref:集合名称

  • $id:引用的id

  • $db:数据库名称,可选参数

数据库保存格式

  1. {
  2. "_id":ObjectId("53402597d852426020000002"),
  3. "address": {
  4. "$ref": "address_home",
  5. "$id": ObjectId("534009e4d852427820000002"),
  6. "$db": "w3cschoolcc"
  7. },
  8. "contact": "987654321",
  9. "dob": "01-01-1991",
  10. "name": "Tom Benzamin"
  11. }

查找

  1. var user = db.users.findOne({"name":"Tom Benzamin"})
  2. var dbRef = user.address
  3. //如果dbRef是对象使用以下方式查找
  4. db[dbRef.$ref].findOne({"_id":(dbRef.$id)})

插入

插入时注意$ref要放在$id之前,否则会报错

  1. relatedFields: [
  2. {
  3. $ref: 'user', //指向的集合
  4. $id: ObjectId("5a72af0e937e6425bf4201e4"), //mongo生成的_id
  5. $db: 'demo', //数据库名 可选默认当前数据库,如果为其他数据库的必传
  6. }
  7. ]