大きいか小さいマングースクエリネストされた文書は...ダウは、私は特定の日付より大きいまたは小さいコメントを照会方法、特定の日付
ここでは、Postモデルとコメントモデルと私のスキーマです:
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);
});
埋め込みドキュメントをクエリするのに助けが必要です...
私は詳細を与えるために自分のコードを編集しました。
空の配列を返します。だから私が望むもの、または私が期待するのは空のコメント配列を持つ投稿です。しかし、この質問で私は投稿を全く得ていません。 (私が$ gteを$ lteと交換すると、(明らかに)2つのコメントを持つ投稿が得られます)。
また、上記の説明に従って、どのように詳細をフィルタリングすることができますか?
おかげさまで、1 Post {_id:1、 "comments.created_a":{$ lt:(new Date())} ...のためにどうすればよいですか? – silverfighter
右のように、セレクタオブジェクトに '_id:1'プロパティを追加するだけです。 – JohnnyHK
期待どおりに動作しません。私はqを編集しました。詳細を与える... – silverfighter