0
我有以下模式结构为我的应用程序:猫鼬查询参考
var User = new Schema({
name: {type: String, required: true},
screen_name: {type: String, required: true, index:{unique:true}},
email: {type: String, required: true, unique:true},
created_at: {type: Date, required: true, default: Date}
});
var Line = new Schema({
user: {type: Schema.ObjectId, ref: 'User'},
text: String,
entered_at: {type: Date, required: true, default: Date}
});
var Story = new Schema ({
sid: {type: String, unique: true, required: true},
maxlines: {type: Number, default: 10}, // Max number of lines per user
title: {type: String, default: 'Select here to set a title'},
lines: [Line],
created_at: {type: Date, required: true, default: Date}
});
var Story = db.model('Story', Story);
var User = db.model('User', User);
当我使用我想要的SID输出在故事线查询一个故事,但也是用户SCREEN_NAME。
我目前使用下面的查询故事:
app.get('/api/1/story/view/:id', function(req, res){
Story.findOne({ sid: req.params.id }, function(err, story){
if (err) {
res.json(err);
}
else if(story == null) {
res.json(err);
}
else{
res.send(story);
}
});
});
刚刚带回的结果是这样的:
{
"__v": 1,
"_id": "5117878e381d7fd004000002",
"sid": "DIY0Ls5NwR",
"created_at": "2013-02-10T11:42:06.000Z",
"lines": [
{
"user": "511782cab249ff5819000002",
"text": "TESTING",
"_id": "51178795381d7fd004000003",
"entered_at": "2013-02-10T11:42:13.000Z"
}
],
"title": "Select here to set a title",
"maxlines": 10
}
有一个用户建立与_id但我不完全确定如何输出故事,并为它包括用户screen_name甚至整个用户信息以及输出
{
"__v": 0,
"screen_name": "Tam",
"email": "[email protected]",
"name": "Tam",
"_id": "511782cab249ff5819000002",
"created_at": "2013-02-10T11:21:46.000Z"
}
谢谢,这似乎已经奏效!使用这个逻辑,有没有办法看到一个Story's ID的数组? 或者我必须在用户模式中添加'stories:{type:Schema.ObjectId,ref:'Story'}'然后执行某种操作? – Tam2 2013-02-10 15:21:11
@ Tam2嗯......我不确定你在问什么。或许更好地将它作为一个单独的问题来提供,您可以在其中提供更多细节。 – JohnnyHK 2013-02-10 15:30:45
谢谢约翰尼,我只是问,如果我在原始示例中返回例如'Tam'的用户,我是否也可以让它返回storys列表,如 - https://gist.github.com/Tam2/ d54695cb17c4a5a808c0 – Tam2 2013-02-10 15:44:12