Javascript 如何在文档属性(数组)中查找ID并返回该对象的填充信息

Javascript 如何在文档属性(数组)中查找ID并返回该对象的填充信息,javascript,arrays,mongodb,mongoose,Javascript,Arrays,Mongodb,Mongoose,我在MongoDB中有以下文档。如何在likes数组中找到特定的ID并返回该对象的填充信息 文件如下: {u id:ObjectId(“60a90f0e1f4af802e8b893e6”), 状态:“可用”, 喜欢: [目标(“60a8e0b9baa1572b847931ed”), ObjectId(“60AA342CB6B3902453465”), 名称:“coba”, 年龄:1岁, __v:0}您告诉MongoDB搜索字符串,而不是id。因此您必须将字符串转换为id,以便MongoDB可以

我在MongoDB中有以下文档。如何在likes数组中找到特定的ID并返回该对象的填充信息

文件如下:

{u id:ObjectId(“60a90f0e1f4af802e8b893e6”),
状态:“可用”,
喜欢:
[目标(“60a8e0b9baa1572b847931ed”),
ObjectId(“60AA342CB6B3902453465”),
名称:“coba”,
年龄:1岁,

__v:0}
您告诉MongoDB搜索字符串,而不是id。因此您必须将字符串转换为id,以便MongoDB可以搜索它。代码应该如下所示:

const mongoose = require('mongoose');

const [foundUser] = await PetsModel.find(
      {
        likes: { $in: [ mongoose.Types.ObjectId("60a8e0b9baa1572b847931ed") ] }
      },
      { likes: 1 }
    ).populate({
      path: 'likes',
      select: {
        __v: 0,
        createdAt: 0,
        updatedAt: 0,
        password: 0
      }
    });

    res.status(201).json({
      success: true,
      data: foundUser.likes
    });

太棒了,非常感谢卢西亚诺