Requête Mongoose documents imbriqués plus ou moins une certaine date
Comment dow j'ai une requête commentaires supérieure ou inférieure à 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 avec l'interrogation de l'embedded docs...
Ok j'ai édité mon code afin de donner plus de détails.
Il renvoie un tableau vide. Donc ce que je veux ou ce que je peut s'attendre à un Poste avec un commentaires vides de la matrice. Mais avec cette requête, je n'ai pas un post à tous. (quand je change $gte avec $lte-je obtenir (évidemment), le poste avec ses 2 commentaires).
Mais encore une fois, comment puis-je filtrer les détails donc, selon ma description ci-dessus?
source d'informationauteur silverfighter
Vous devez vous connecter pour publier un commentaire.
Utilisation la notation point pour atteindre l'intérieur de l'embedded tableau docs. Par exemple, à la requête de l'
Post
commentaires avec uncreated_at
entredate1
etdate2
:Mise à JOUR
Merci pour le modifier; maintenant, je comprends que vous essayez de filtrer les commentaires de seul post par leur
created_at
date. Vous ne pouvez pas le faire directement avec MongoDB requêtes, mais je crois que vous pouvez le faire avec le 2.2 agrégation cadre si vous êtes à cette version. Jetez un oeil à la discussion de ce demande de fonctionnalité sur Jira pour des exemples.