は、私はいくつかの条件に一致されているオブジェクトを削除することにより、配列を変更しようとしているアレイから文書を削除するにはどうすればよいですか?
{
"_id" : ObjectId("5708bf40a86e6f5bd1f45354"),
"companyId" : ObjectId("5708bed6a86e6f5bd1f4534f"),
"descriptions" : [
{ "id" : ObjectId("5708bf40a86e6f5bd1f45351"), "description" : "test" },
{ "id" : ObjectId("5708bf40a86e6f5bd1f45352"), "description" : "test1" },
{ "id" : ObjectId("5708bf40a86e6f5bd1f45353"), "description" : "test2" }
]
}
となりました。この構造を持つ文書が挿入されている - この場合には、私は特定のid
でオブジェクトを削除する必要があります。ここで
は、任意の成功
public void deleteCustomField(final String descriptionId, final ObjectId companyId){
MongoCollection<Document> collection = setCollection(CUSTOM_FIELDS_COLLECTION);
collection.updateOne(and(eq("companyId", companyId), eq("descriptions.id", new ObjectId(descriptionId))), new Document("$unset", new Document("descriptions.description", "")));
}
なしこれはupdateOne
は全く何もしないsetCollection
方法
private MongoCollection<Document> setCollection(final String collectionName){
return db.getCollection(collectionName);
}
で、私はこれまでやっているものです。私はクエリが奇妙に見えていることは知っていますが、何が起きているのか、またアレイからドキュメントを削除する方法を理解できません。私も$pull
で試しましたが、私は運が全くありませんでした。
私はここで何か小さくて本当に基本的なことが分からないことを知っていますが、MongoDBの初心者として、私はそれを見つけることができません。
私にプッシュを与えることはできますか?
答えをありがとう、いくつかの良い文書を読んだ後、私はそれを動作させることができました。 – Slim
ようこそ。私のソリューションは機能していますか?あなたが望むものに合ったものを見つけたら、それを答えとして加えてください。 – tartard