gpt4 book ai didi

node.js - Mongoose 无法使用 $in 运算符找到引用

转载 作者:太空宇宙 更新时间:2023-11-04 01:08:52 25 4
gpt4 key购买 nike

我有一个像这样的用户架构

var userSchema = new mongoose.Schema({
username: String,
following: [{created: {type: Date, default: Date.now}, target: { type: mongoose.Schema.Types.ObjectId, ref: 'User', required: true }}]
});

以及用户事件架构:

var activity = new mongoose.Schema({
text: String,
private: Boolean,
_creator: { type: mongoose.Schema.Types.ObjectId, ref: 'User', required: true }
});

我正在尝试获取 _creator 位于用户的以下子文档$in中的所有事件。

userModel.methods.getNewsfeed = function(callback){
var following_targets = _.pluck(this.following, 'target') // using underscore.js
activityModel.find(
{
$or: [
{
_creator: this._id
}
,
{
$and: [
{ private: { $ne: true } }
, {'_creator': { $in: following_targets }}
]
}
]

}
)
.exec(callback);
}

但是此查询仅返回当前用户创建的事件。删除 _creator: this._id 部分会返回一个空数组。

最佳答案

我发现出了什么问题。我使用 mongo shell 手动插入示例用户文档,following 数组中的 targetString 而不是 ObjectId >,所以 Mongoose 找不到它。

关于node.js - Mongoose 无法使用 $in 运算符找到引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20032316/

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