如何在猫鼬中为图像使用默认 url?

How to use default url for image in mongoose?

var mongoose = require("mongoose");
var passportLocalMongoose = require("passport-local-mongoose");
var url = "https://i.stack.imgur.com/34AD2.jpg";
var UserSChema = new mongoose.Schema({
    firstName: String,
    lastName: String,
    email: String,
    profilePic: {type: String, default: url},
    username: String,
    password: String,
    isAdmin: {type: Boolean, default: false}
});

UserSChema.plugin(passportLocalMongoose);

module.exports = mongoose.model("User", UserSChema);

上面提到的是我的代码,我尝试将字符串设置为 url 并使用它,但它不起作用。每当我去检查 mongo shell 中的值时,profilePic 将为空。

如果您的 mongo collection 中已经有文档,它不会在数据库中为它们更新图像 URL,它会添加默认 URL 时您将保存任何新数据,如果您使用 mongoose 查找它们,还将添加旧记录。

因此,在使用 mongoose 时,您将始终在代码中获得默认值 https://i.stack.imgur.com/34AD2.jpg,但如果在 mongo shell 中看到,旧文档的 profilePic 将是空.

如果您还想在所有旧文档中更新 profilePic 的默认值,运行 Mongo 控制台中的以下查询。

db.getCollection('users').updateMany({},{$set:{"profilePic": "https://i.stack.imgur.com/34AD2.jpg"}})