mongoose不是函数

kulphzqa  于 2023-11-19  发布在  Go
关注(0)|答案(2)|浏览(115)

我有这个错误TypeError:friendData.insert不是一个函数PLS帮助.尝试改变方法,下降工程.我不知道该怎么办了.我不知道更多的写这个问题

const FriendSchema = new Schema({
    user: {type: Schema.Types.ObjectId, ref: 'User'},
    email: {type: String, unique: true, required: true},
    friends: {type: Array},
    subscribe: {type: Array},
    requestFrineds: {type: Array},
})

module.exports = model('Friends', FriendSchema);

个字符

e7arh2l6

e7arh2l61#

没有insert方法。如果你想把它们添加到数组中,你可以使用push()方法,如下所示:

class friendService {
    async addFriend(email, sender) {
        const friendData = await FriendModel.findOne({email: email})
        const senderData = await FriendModel.findOne({email: sender})
        console.log(friendData, senderData)
        friendData.requestFriends.push(sender);
        senderData.subscribe.push(email);
        await friendData.save(); //< await the save()
        await senderData.save(); //< await the save()
        // return friends;
    }

字符串

注1:你需要awaitsave()方法。

有更好的方法来实现这一点。在那一刻,你对数据库进行了4次调用。两次调用获取friendDatasenderData,然后另外两次调用用save()更新每个文档。如果你使用findOneAndUpdate(),你可以减少一半的数据库请求数量。

注2:您的schema中也有一个错字requestFrineds应该是requestFriends吧?

t9aqgxwy

t9aqgxwy2#

我想你把FriendModelFriends搞错了
XML Schema导出为Friends,所以你应该像这样使用:

const friendData = await Friends({email: email})
   const senderData = await Friends.findOne({email: sender})
   console.log(friendData, senderData)

字符串
你导入Friends模式了吗?如果可以的话告诉我

相关问题