1
私のコレクションには、以下のスキーマに従って特定のエントリを取得したいと考えています。MongoDBは別のフィールドを持つアイテムを見つける
それは、最新のを取得するためにversion
によってソートされ、objectId
によってのみ、最新取得するために、次いで、濾過同じobjectClass
ことmusst(注:それはアイテムIDではありません!!!)
は、私はすでにいくつかの組み合わせを試してみました個別のグループと、それに
コレクション(歴史)を取得いけない:
{ "_id" : ObjectId("AAA"), "objectId" : ObjectId("BBB"), "objectClass" : "AAA\BBB\CCC", "version" : NumberInt("1"), "fields" : {...} }
{ "_id" : ObjectId("AAB"), "objectId" : ObjectId("BBB"), "objectClass" : "AAA\BBB\CCC", "version" : NumberInt("2"), "fields" : {...} }
{ "_id" : ObjectId("AAC"), "objectId" : ObjectId("BBB"), "objectClass" : "AAA\BBB\CCC", "version" : NumberInt("3"), "fields" : {...} }
{ "_id" : ObjectId("AAD"), "objectId" : ObjectId("BBA"), "objectClass" : "AAA\BBB\CCC", "version" : NumberInt("1"), "fields" : {...} }
{ "_id" : ObjectId("AAE"), "objectId" : ObjectId("BBA"), "objectClass" : "AAA\BBB\CCC", "version" : NumberInt("2"), "fields" : {...} }
{ "_id" : ObjectId("AAF"), "objectId" : ObjectId("BBA"), "objectClass" : "AAA\BBB\CCC", "version" : NumberInt("3"), "fields" : {...} }
私の現在の文は(期待できない結果を返します):
db.history.find({objectClass: "AAA\BBB\CCC"}).sort({version: -1});
期待される結果:
[
{ "_id" : ObjectId("AAC"), "objectId" : ObjectId("BBB"), "objectClass" : "AAA\BBB\CCC", "version" : NumberInt("3"), "fields" : {...} }
{ "_id" : ObjectId("AAF"), "objectId" : ObjectId("BBA"), "objectClass" : "AAA\BBB\CCC", "version" : NumberInt("3"), "fields" : {...} }
]
あなたは '}'と '$ mach'を見逃しましたが、すごくうまくいきます!ありがとうございました! +1 –
@JasonSchilling私が逃したものを指摘してくれてありがとう。私は戻って質問を修正した – Woodsy