Comment dow je requête des commentaires plus ou inférieur à une certaine date ...requête Mongoose documents imbriqués plus ou moins une certaine date
Voici mon schéma avec le modèle Post et un modèle Commentaire:
var mongoose = require('mongoose');
var should = require('should');
mongoose.connect("localhost","test_db");
var CommentSchema = new mongoose.Schema({
content: {type:String},
created_at: {type:Date, default:Date.now}
});
var PostSchema = new mongoose.Schema({
title: {type:String},
content: {type:String},
comments: [CommentSchema]
});
var Post = mongoose.model('Post',PostSchema);
var Comment = mongoose.model('Comment',CommentSchema);
var post = new Post({title:"hello world",comments:[{content:"1st comment"},{content:"2nd comment"}]});
// I saved it! and then I query for it
var id = "5045d5be48af9f040f000002";
Post.find({ _id:id,
"comments.created_at":{ $gte:(new Date())}
},function(err,result){
console.log(result);
});
J'ai besoin d'aide pour interroger les documents intégrés ...
Ok J'ai modifié mon code pour donner plus de détails.
Ceci retourne un tableau vide. Donc ce que je veux ou ce à quoi je m'attendais, c'est un Post avec un tableau de commentaires vide. Mais avec cette requête je n'ai pas de message du tout. (quand j'échange $ gte avec $ lte je reçois (évidemment) le post avec ses 2 commentaires).
Mais encore une fois comment puis-je filtrer les détails selon ma description ci-dessus?
Merci, et comment le ferais-je pour 1 Post {_id: 1, "comments.created_a": {$ lt: (new Date())} ...? – silverfighter
À droite, vous ajoutez simplement la propriété '_id: 1' à votre objet sélecteur. – JohnnyHK
Fonctionne pas comme prévu. J'ai édité le q. pour donner plus de détails ... – silverfighter