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

时间:2017-12-27 08:13:15

标签: database mongodb mongoose nosql

我正在尝试查找引用另一个模型的模型的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。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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)
        }
    }
});