Jak dow kwerendy komentarze większa lub mniejsza od określonej daty ...Mongoose zapytania zagnieżdżone dokumenty większa lub mniejsza pewna data
Oto mój schemat z modelu post i komentarz modelu
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);
});
Potrzebuję pomocy z zapytaniami dotyczącymi wbudowanych dokumentów ...
OK Edytowałem mój kod, aby podać więcej szczegółów.
To zwraca pustą tablicę. Tak, czego chcę lub czego bym oczekiwał to Post z pustą tablicą komentarzy. Ale z tym zapytaniem wcale nie otrzymuję postu. (Kiedy wymieniam $ gte z $ lte otrzymuję (oczywiście) post z jego 2 komentarzami).
Ale jak mogę odfiltrować szczegóły zgodnie z powyższym opisem?
fajne dzięki, i jak bym to zrobił za 1 post {_id: 1, "comments.created_a": {$ lt: (new Date())} ...? – silverfighter
W prawo, wystarczy dodać właściwość '_id: 1' do obiektu selektora. – JohnnyHK
Działa niezgodnie z oczekiwaniami. Edytowałem q. aby podać więcej szczegółów ... – silverfighter