Ich habe ein Content
Schema. Es hat course
und content
Feld. content
Feld hat 2 Unterfelder content1
und content2
, die beide Array ObjectIds
sind. Ich möchte alle ObjectIds
von content1
abrufen, die später als eine gegebene ObjectId
(größer als eine gegebene) erstellt werden.Zurückgeben aller Elemente eines Arrays größer als ein bestimmter Wert in Mungo
Das Problem ist mit meinem Code, ich bin nur eine ObjectId
, aber ich möchte alle ObjectIds
größer als givenId
abrufen.
Mein Schema ist:
var CurrentContentSchema = new mongoose.Schema({
"course" : Number,
"content" : {
"content1" : [
{
type : mongoose.Schema.Types.ObjectId,
ref : 'First'
}
],
"content2" : [
{
type : mongoose.Schema.Types.ObjectId,
ref : 'Second'
}
]
}
});
Mein Code ist:
CurrentContent.find({
'course' : givenCourse,
'content.content1' : { $gt : givenId}
},{
'course' :1,
'content.content1.$' : 1
}).
exec(function(err,contents) {...
});
Jede Hilfe ist sehr geschätzt.
Mit 'ObjectID' für später erstellt repräsentierende nicht eine richtige Sache, da sie immer zu tun arn't auf mehreren Rechnern zu erhöhen. Ziehen Sie in Erwägung, einen Zeitstempel hinzuzufügen, wenn Sie dieses Feld benötigen. – hyades
Ich kann dieses Feature hinzufügen, aber wie bekomme ich alle Elemente des Arrays, die später erstellt werden, dass ein bestimmtes Element durch _id repräsentiert wird? . '$' gibt mir nur ein Array-Element, nicht mehrere. –
Außerdem denke ich, dass 'ObjectId' funktionieren würde, wenn ich nicht an etwas anderes denke (Hinzufügen von' Timestamp'). Aber meine Frage ist, wie man alle Elemente erhält, die zu den Kriterien "$ gt" oder "$ lt" passen, nicht nur eine. –