gpt4 book ai didi

node.js - Mongoose 与自定义字段的关系

转载 作者:太空宇宙 更新时间:2023-11-03 22:55:02 25 4
gpt4 key购买 nike

我看过很多关于 Mongoose 和关系的示例,但是如何在自定义字段中创建对另一个实体的引用?

var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
mongoose.connection.once('open', function(){

var Author = m.model('Author', new m.Schema({
name: String,
slugname: String
}));
var Book = m.model('Book', new m.Schema({
title: String,
author: {type: String, ref: 'Author.slugname'}
}));

});

在上面的代码中,我将 Book.author 链接到 Author.slugname。只是我不知道这是不是正确的做法。

最佳答案

不,你不能。 Mongoose 总是使用 _id 字段来链接文档。但是...

您可以使用您想要的任何数据类型为每个文档设置您自己的_id。只有两个限制:

  • 它应该是唯一的
  • 在文档的生命周期内不应更改

因此,不要添加新的 slugname 字段,而是使用作者的 _id 作为 slugname:

var Author = m.model('Author', new m.Schema({
_id: String, // <-- slugname
name: String
}));
var Book = m.model('Book', new m.Schema({
title: String,
author: { type: String, ref: 'Author' }
}));

关于node.js - Mongoose 与自定义字段的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21468443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com