我有两个模式模型。
const catSchema = new mongoose.Schema({
name: 'string',
likes: [
{
type: mongoose.Schema.Types.ObjectId,
ref: 'User',
require: true
}
],
});和
const userSchema = new mongoose.Schema({
email: {
type: String,
required: true,
unique: true,
},
});比方说,猫收藏中有10个猫文档。一个用户喜欢两个猫文档。我想做的是,我想找到两个猫的名单,用户喜欢通过猫模型。
发布于 2020-04-01 12:29:23
您可以使用来自$in的MongoDB查询来实现这一点。详细信息:https://docs.mongodb.com/manual/reference/operator/query/in/
从docs::,$in操作符选择一个字段的值等于指定数组中任何值的文档。
我曾经使用它来获取组,用户是其中的成员。在您的情况下,您应该在以下方面取得成功:
const Cat = require('./models/Cat');
Cat.find({ likes : { $in : [user] }}).exec((cats) => {
console.log(cats);
});
// user in this case should be the user document
// the query checks if the user is included in the 'likes' arradyhttps://stackoverflow.com/questions/60970759
复制相似问题