0
我定義爲用戶架構如下:發行貓鼬查詢上無人居住的子文檔
var UserSchema = new mongoose.Schema({
username: {type: String, lowercase: true, unique: true},
blogs: [{type: mongoose.Schema.Types.ObjectId, ref: 'Blog'}],
});
的博客模式如下:
var BlogSchema = new mongoose.Schema({
name: String,
owner: {type: mongoose.Schema.Types.ObjectId},
});
我希望做的是發出一個find
查詢如果給定一個字符串q,它將查找所有用戶名爲q的用戶,或者至少有一個名稱包含q的博客。
這是我到目前爲止的代碼:
User.find({
$or: [ {username:{$regex: q, $options: 'i'}},
{blogs:{ $elemMatch: {name: {$regex: q, $options: 'i'}}}}]
})
.exec(function(err,users){
if (err) {return next(err);}
res.json(users);
});
然而上述不起作用。如果我有一個用戶lizard
,並帶有博客TheReptilian
,那麼使用「rep」作爲q參數查找不會帶來lizard
。
我認爲這是因爲我的UserSchema
的blogs
數組實際上是ObjectID的數組。我該如何做這項工作?
的可能的複製[?如何查詢MongoDB中引用的對象(http://stackoverflow.com/questions/9621928/how-do-i-query參考的對象功能於mongodb的) –