私はContent
スキーマを持っています。それはcourse
とcontent
フィールドを持っています。 content
フィールドは2つのサブフィールドcontent1
とcontent2
を持ち、両方ともObjectIds
の配列です。私は、与えられたObjectId
(指定されたObjectId
より大きい)より遅く作成されたcontent1
からObjectIds
をすべて検索したいと思います。mongooseで与えられた値より大きい配列のすべての要素を返します
問題は私のコードでは、私はObjectId
の1つだけを取得していますが、私はのすべてを取得したいです。
私のスキーマは次のとおりです。
var CurrentContentSchema = new mongoose.Schema({
"course" : Number,
"content" : {
"content1" : [
{
type : mongoose.Schema.Types.ObjectId,
ref : 'First'
}
],
"content2" : [
{
type : mongoose.Schema.Types.ObjectId,
ref : 'Second'
}
]
}
});
私のコードは次のとおりです。
CurrentContent.find({
'course' : givenCourse,
'content.content1' : { $gt : givenId}
},{
'course' :1,
'content.content1.$' : 1
}).
exec(function(err,contents) {...
});
すべてのヘルプは高く評価されています。
を試すことができ、彼らは常に複数のマシンに増加arn'tので、行うには正しいものではありません。このフィールドが必要な場合は、タイムスタンプの追加を検討してください。 – hyades
私はその機能を追加することができますが、後で作成される配列のすべての要素を、特定の '_id'で表される要素をどのように取得するのですか? 。 '$'は複数の配列要素ではなく配列要素を1つだけ与えます。 –
それ以外に、 'ObjectId'はうまくいくと思います。もし私が他の何か(' timestamp'を追加する)を考えていないと思っています。しかし、私の質問は、単一のものではなく、 '$ gt'や' $ lt'の条件に合致する要素をすべて得る方法です。 –