【发布时间】:2016-05-04 07:18:09
【问题描述】:
我有这个架构:
var scheme = schema({
name: { type: String, required: true },
deleted: { type: Boolean, default: false },
user: {
type: ObjectId,
ref: 'User'
},
created: {type: Date, default: Date.now},
modified: {type: Date, default: Date.now},
eventinfo: { type: String, required: false },
street: { type: String, required: false },
city: { type: String, required: false },
country: { type: String, required: false },
postalcode: { type: String, required: false },
usecurrentlocation: { type: Boolean, required: false },
schedule_agenda_html: { type: String, required: false },
gspsetup_html: { type: String, required: false },
evdropboxstat: { type: Boolean, required: false },
evsponsors_html: { type: String, required: false },
evexhibitors_html: { type: String, required: false },
floorplan_html: { type: String, required: false },
social_media_fb: { type: String, required: false },
social_media_tw: { type: String, required: false },
social_media_li: { type: String, required: false },
evorganizers_html: { type: String, required: false },
coverscreen_img: { type: String, required: false },
logo_img: { type: String, required: false },
background_img: { type: String, required: false },
background_color: { type: String, required: false },
event_fromdate: {type: Date, default: Date.now},
event_todate: {type: Date, default: Date.now},
attendees_feedback: { type: Boolean, required: false },
social_network: { type: Boolean, required: false },
feature_icon_color: { type: String, required: false }
});
exports.EacEvent = mongoose.model("EacEvent", scheme);
我需要找到用户 _id 等于这样的东西的所有 EacEvents (56a8a1eaf7a3289c10c9ed30) 我已经尝试了很多东西,但要么我得到了所有的 EacEvents,要么没有 EacEvent。谢谢
路由文件
这是我用来获取所需结果的路由文件代码..
var models = require('../models')
,mongoose = require('mongoose')
var schema = mongoose.Schema;
var ObjectId = schema.ObjectId;
// var ObjectID = schema.ObjectId;
exports.myeventapps = function (req, res) {
var eac_userid;
if (req.user){
eac_userid = JSON.stringify(req.user._id);
console.log('================================' + eac_userid);
}
//models.EacEvent.find().exec(function(err, myevents) {
models.EacEvent.find({ deleted: false,'user._id':ObjectId(eac_userid)}).sort({ modified: -1 }).exec(function(err, myevents) {
res.locals.myevents = myevents;
console.log('================================' + myevents);
res.render('eac_myevent_apps', { title: "My Event Apps", myeventapps: myevents });
});
}
我也尝试在 .populate() 函数中比较 user._id,但没有得到所需的结果
【问题讨论】:
-
您是在与字符串进行比较吗?对象 ID 和字符串不能直接比较。见stackoverflow.com/questions/11637353/…
-
注意:ObjectID 有一个方法
.equals(string_value)可以用来与字符串进行比较 -
能否添加您尝试过的代码?否则,我们不知道您遇到的问题
-
@zangw 我已经更新了代码请查看代码
-
@joe 请告诉我在哪里使用 .equals() 我已经更新了代码