向mongodb添加一个文档,并预先填充字符串的开始和结束

Add a document to the mongodb with pre-populated start and end of string

本文关键字:填充 字符串 结束 开始 添加 mongodb 文档 一个      更新时间:2023-09-26

我有一个程序在节点js。我希望能够插入一个字符串到dbs,但我想设置该字符串的预填充的开始和结束。这个例子将帮助我更好地解释它:

我有一个schema:

var Cat = new mongoose.Schema({
  name: String,
  url: String
})

当我添加一个cat文档时,例如

var post = new Cat({name: "Emily", url: "test"})

它将保存为'name= Emily, url = test'

挑战:保存为'name= Emily, url = http://test/extension'

所以我想预先填充任何url,在开始时添加'http://',在结束时添加'/extension'

我试着这样修改模式:

var Cat = new mongoose.Schema({
  name: String,
  url: 'http://' + String + '/nodes'
})

返回错误

TypeError: Undefined type `Http://function String() { [native code] }/extension` at `url`

我在我的项目中添加了来自不同地方的新文档,所以我只是想找到一种方法来从一个地方预填充它,而不是在整个项目中添加新文档时预填充它。还有人有其他想法吗?

这可能会解决您的问题:

var Cat = new Schema({
        name: String,
        url: String
    });
if (!Cat.options.toJSON)
    Cat.options.toJSON = {};
Cat.options.toJSON.transform = function (doc, ret, options) {
    ret.populatedUrl = 'http://' + ret.url + '/extension';
    // you can also delete url key if you want
    delete ret.url;
};
输出:

{name: 'name', populatedUrl: 'http://{url}/extension'}