0

MongoDB で問題が発生しました。フィールド名がわからないフィールドの値を取得しようとしており、取得した値を使用してコレクション内の別のドキュメントの存在を確認しています。フィールドに含まれている可能性のある値のパターンのみを認識しています。

説明させてください。次のドキュメント構造があります。

db.blogs_data.find({"_id.r":"http://blog_post_url/authors"}).pretty();
{
    "_id" : {
        "r" : "http://blog_post_url/authors"
    },
    "author:_1" : {
        "u" : "People:C2CE29E7"
    },    
    "author:_2" : {
        "u" : "Organisations:0B2A962A-8D1C"
    },
    "rdf:type" : {
        "u" : "rdf:Seq"
    }
}

ここで、author:_2 は次のようになります: author:_N (数値)。ここで、上記の decument の各シーケンスの詳細は、次のような別のドキュメントとして保存されます。

db.blogs_data.find({"_id.r":"People:C2CE29E7"}).pretty();
{
    "_id" : {
        "r" : "People:C2CE29E7"
    },
    "rdf:type" : {
        "u" : "foaf:Person"
    },
    "foaf:name" : {
        "l" : "McCabe, Catherine"
    }
}


db.blogs_data.find({"_id.r":"Organisations:0B2A962A-8D1C"}).pretty();
{
    "_id" : {
        "r" : "Organisations:0B2A962A-8D1C"
    },
    "rdf:type" : {
        "u" : "foaf:Organisations"
    },
    "foaf:name" : {
        "l" : "ABC Publications"
    }
}

ここで、/authors の各シーケンスの値を取得する必要があります。ここで、作成者の値のパターンは "Organisations*" のようになり、シーケンスの値を使用して、実際に存在するかどうかなど、作成者の詳細ドキュメントを確認します。私はMongoDBをチェックしましたが、$returnKeyがあり、インデックスキーまたはキーを返すと言われています.http://docs.mongodb.org/v2.2/reference/operator/returnKey/#op._S_returnKeyです 、ドキュメントのようです「 $returnKey が true に設定されていて、クエリが読み取り操作を実行するためにインデックスを使用しない場合、返されるドキュメントにはフィールドが含まれません。」

ええと、この値がどこにあるのか正確なキーはわかりません。その中の値だけです。このMongoDB Get names of all keys in collectionもチェックしましたが、コレクション内の一意のキーを返します。

Mongo クエリでは、ここでやりたいことを実行できないように思えます。これを行うには、JS スクリプトを作成する必要があります。同じまたは類似の問題に直面している人はいますか?JS の場合、何を出発点と見なす必要がありますか?

よろしく、

4

1 に答える 1