MongoDB查询以查找引用模型的ID

问题描述 投票:0回答:2

我试图找到一个引用另一个模型的模型的ID。我有一个由一系列挑战组成的用户模型,我必须找到特定用户存在的挑战ID

我的用户模型:

var UserSchema = new mongoose.Schema({
image: String,
displayName: String,
firstName: String,
lastName: String,
password: String,
email: String,
createdAt: Date,
accessToken: String,
isLoggedIn: Boolean,

challenges:[
    {
        type: mongoose.Schema.Types.ObjectId,
        ref:"Challenge"
    }
]
});

我的挑战模型:

var  ChallengeSchema =  new mongoose.Schema({
winner: Boolean,
score: String
});

例如:如果我的用户ID为1且质询ID为89,我必须检查id为1的特定用户是否存在质询ID。

database mongodb mongoose nosql
2个回答
0
投票

MongoDB是面向文档的,没有连接。理论上,关于一个对象的所有数据都存储在这样的dbs中的一个文档中。因此,在您的情况下,我们的用户会遇到一系列挑战。


0
投票

这是用于检查对于id为1的特定用户是否存在质询id(89)的查询。

User.count({
    _id: 1, // User ID 
    challenges: {
        "$in": [89] // Challenge Id 
    }
}).exec(function(err, count){
    if(err){
        // Handle error
    } else {
        if(count > 0){
            // If count greater than 0 than user(ID-1) contains challenge(ID-89)
        }
    }
});
© www.soinside.com 2019 - 2024. All rights reserved.