使用预先填充的字符串开头和结尾向mongodb添加文档

时间:2016-08-20 13:16:33

标签: javascript node.js mongodb mongoose

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

我有一个架构:

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

当我添加猫文档时,例如

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`

这给了我一个错误

kanye_quote = """My greatest pain\
 in life is that I will never be able to see myself perform live"""

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

1 个答案:

答案 0 :(得分:0)

这可以解决您的问题:

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'}