gpt4 book ai didi

node.js - Mongoose 聚合 : ObjectId from variable $in array not returning true

转载 作者:太空宇宙 更新时间:2023-11-03 23:51:13 28 4
gpt4 key购买 nike

myId 是一个值为 5dfe303c5eb482ec2672217d 的 id,而 $amIinThisArray.userId 也是 5dfe303c5eb482ec2672217d 所以我希望 imFollowing 为 true,但它始终为 false。

const myId = '5dfe303c5eb482ec2672217d';
const followers = await userModel.aggregate([
{ $addFields: {
avatarId: '$followerData.shared.avatarId',
fullName: '$followerData.shared.fullName',
imFollowing: {
$in: [ // <==== DoesMongoose support $in ??
myId, // <==== Does this variable need to be converted to some type??
'$amIinThisArray.userId',
],
},
},

当我在 MongoDB IDE 中测试它时......

            "$addFields": {
"avatarId": "$followerData.shared.avatarId",
"fullName": "$followerData.shared.fullName"
"imFollowing": {
"$in": [
new ObjectID("5dfe303c5eb482ec2672217d"),
"$amIinThisArray.userId"
]
},
}

返回true!

为什么?

myId需要转换为某种特殊类型吗?

最佳答案

您可以通过

将 String id 转换为 ObjectId
let mongoose = require('mongoose');
const objectId=mongoose.Types.ObjectId("5dfe303c5eb482ec2672217d");

现在您可以使用objectId

关于node.js - Mongoose 聚合 : ObjectId from variable $in array not returning true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59437787/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com