mongodb数据库的集合关联

通常不同集合的数据之间是有关系的,例如文章和用户信息存储在不同的集合中,但是文章时某个用户发表的,要查询文章的所有信息包括发表用户,就需要用到集合关联。

文章集合 用户集合
_id _id
title name
author age

content

hobbies

示例:

const mongoose = require(‘mongoose‘)

mongoose.connect(‘mongodb://localhost/test1‘, { useNewUrlParser: true })
  .then(() => console.log(‘数据库连接成功‘))
  .catch(err => console.log(‘数据连接失败‘ + err))

// 文章集合规则
const PostSchema = new mongoose.Schema({
  title: String,
  content: String,
  author: {
    type: mongoose.Schema.Types.ObjectId,
    ref: ‘User‘
  }
})

// 用户集合规则
const UserSchema = new mongoose.Schema({
  name: String,
  age: Number,
  hobbies: String
})

// 文章集合
const post = mongoose.model(‘Post‘, PostSchema)
// 用户集合
const user = mongoose.model(‘User‘, UserSchema)

// 创建用户
user.create({ name: ‘zhangsan‘, age: 20, hobbies: ‘11111‘ })
  .then(res => console.log(res))
  .catch(err => console.log(err))

// // 创建文章
post.create({ title: ‘测试测试‘, content: ‘内容内容内容内容‘, author: ‘5d34f0542fdc3f7924249a9c‘ })
  .then(res => console.log(res))
  .catch(err => console.log(err))

  // 查询
post.find().populate(‘author‘).then(res => console.log(res))

原文地址:https://www.cnblogs.com/liea/p/11223702.html

时间: 2024-08-28 22:39:00

mongodb数据库的集合关联的相关文章

MongoDB数据库和集合的基本操作

非关系型数据库 命令区分大小写:命令结束符为回车(与MySQL不同之处) mongodb配置 sudo service mongodb start mongo mongodb基本概念 集合对应于关系型数据库的表的概念,创建集合:db.createCollections("<集合名>"):删除集合:db.<集合名>.drop():获取所有集合:show collections 文档对应于关系型数据库的记录的概念,mongodb的文档,是以类json的bson(js

PCB MongoDB 数据库 Collection集合导出与导入

由于一直以来用微软可视化图形界面习惯了,而MongoDB是命令式操作,而用系统自带CMD操作不方便, 这里介绍一款CMD的替代品,大小100多M. Cmder工具下载  https://github.com/cmderdev/cmder/releases 接下来操作全部用Cmder工具来执行指令操作演示 一.Collection集合导出与导入工具介绍: NoSQL中Collection集合对应SQL的的关系相当于表的概念,即对表的导出与导入. 导出集合数据工具 mongoexport.exe 导

MongoDB数据库和集合的状态信息

查看数据库统计信息:db.stats()  > use testswitched to db test> db.stats(){        "db" : "test",         "collections" : 6,         "objects" : 3149516,        "avgObjSize" : 71.99159362898935,         "d

基于C#的MongoDB数据库开发应用(2)--MongoDB数据库的C#开发

在上篇博客<基于C#的MongoDB数据库开发应用(1)--MongoDB数据库的基础知识和使用>里面,我总结了MongoDB数据库的一些基础信息,并在最后面部分简单介绍了数据库C#驱动的开发 ,本文继续这个主题,重点介绍MongoDB数据库C#方面的使用和封装处理过程,利用泛型和基类对象针对数据访问层进行的封装处理. 前面介绍到,当前2.2版本的数据库C#驱动的API,支持两种不同的开发接口,一个是基于MongoDatabase的对象接口,一个是IMongoDatabase的对象接口,前者中

MongoDB 数据库,对象,集合 MongoDB学习平台

http://www.w3cschool.cc/mongodb/mongodb-databases-documents-collections.html MongoDB 数据库,对象,集合 描述 不管我们学习什么数据库都应该学习其中的基础概念,在mongodb中基本的概念是文档.集合.数据库,下面我们挨个介绍. 数据库 一个mongodb中可以建立多个数据库. MongoDB的默认数据库为"db",该数据库存储在data目录中. 在MongoDB中可以创建数据库,如果你想使用Mongo

菜鸟的mongoDB学习---(二)MongoDB 数据库,对象,集合

数据库 一个mongodb中可以建立多个数据库. MongoDB的默认数据库为"db",该数据库存储在data目录中. 在MongoDB中可以创建数据库,如果你想使用MongoDB,创建数据库不是必要的. "show dbs" 命令可以显示所有数据的列表. [email protected]:~$ mongo MongoDB shell version: 2.0.4 connecting to: test > show dbs NewsDB 0.203125G

mongodb 基本的概念-数据库、集合、文档

mongodb中基本的概念是数据库.集合.文档. 下表将帮助您更容易理解Mongo中的一些概念: SQL术语/概念      解释/说明   MongoDB术语/概念 解释/说明 database 数据库 database 数据库 table  表 collection 集合 row                                          记录行                            document                           

MongoDB创建数据库和集合命令db.createCollection详解(转)

切换/创建数据库 use yourDB;  当创建一个集合(table)的时候会自动创建当前数据库 完整的命令如下:db.createCollection(name, {capped: <Boolean>, autoIndexId: <Boolean>, size: <number>, max <number>} ) name:集合的名字capped:是否启用集合限制,如果开启需要制定一个限制条件,默认为不启用,这个参数没有实际意义size:限制集合使用空间

MongoDB学习(管理数据库和集合)

管理数据库 显示数据库列表 show dbs 切换到其他数据库 use <database_name> 创建数据库 MongoDB没有提供显式的创建数据库的MongoDB shell命令.数据库是在添加集合或用户时隐式地创建的. 可使用use database_name命令创建数据库.但只有添加了至少一个文档,才可真正创建完一个数据库. 删除数据库 在MongoDB shell 中删除数据库,必须先切换到该数据库,才可执行删除操作. 1 use database_name 2 db.dropD