簡體   English   中英

Mongoose 添加異步虛擬字段

[英]Mongoose add asynchronous virtual field

我有一個Recipe模型和一個Like模型。 我想在Recipe模型上設置一個虛擬字段,以便在我從數據庫中獲取某個食譜時獲得該Recipe數。 但它返回一個空對象。

RecipeSchema.virtual('likeCount').get(async function () {
  const likes = await Like.find({ recipe: this._id });

  return likes.length;
});

這不能直接回答您的問題,但如果 virtuals 無法處理async函數,您始終可以在RecipeSchema保留對 Like 對象數組的RecipeSchema

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const recipeSchema = Schema({
  ...
  likes: [{ type: Schema.Types.ObjectId, ref: 'Like' }]
  ...
});

然后,您將在文檔中擁有一個數組,您可以參考 的長度來計算點贊數,如果您需要點贊文檔中的實際信息,您可以稍后populate它們。

注意:您必須編寫邏輯以將新的 Likes 附加到正確 Recipe 中的likes數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM