私はニュース投稿に似たスキーマを作成しており、ユーザーが好き嫌いを選択できるようにしています。ここに同じスキーマがあります
Client= new mongoose.Schema({
ip:String
})
Rates = new mongoose.Schema({
client:ObjectId,
newsid:ObjectId,
rate:Number
})
News = new mongoose.Schema({
title: String,
body: String,
likes:{type:Number,default:0},
dislikes:{type:Number,default:0},
created:Date,
// tag:String,
client:ObjectId,
tag:String,
ff:{type:Number,default:20}
});
var newsm=mongoose.model('News', News);
var clientm=mongoose.model('Client', Client);
var ratesm=mongoose.model('Rates', Rates);
特定のユーザーが一連のニュース投稿に与えた評価を取得するために、次のことを試しました。
newsm.find({tag:tag[req.params.tag_id]},[],{ sort:{created:-1},limit: buffer+1 },function(err,news){
ratesm.find({
client:client._id,
newsid:{$lte:news[0]._id,$gte:news.slice(-1)[0]._id}
},
function(err,ratings){
})
})
このクエリは、何があっても空のリストを返します。$gte と $lte を使用して objectId を比較するかどうかは疑問です。私は正しいですか?特定の一連のニュース投稿で、ユーザーがどの投稿を高く評価/低く評価したかを知るにはどうすればよいですか?