0

顧客に発行する必要がある 1000 個の CRN 番号を含むデータベース コレクションがあります。

MongoDB を使用しており、メール アカウントに CRN 番号を発行したいと考えています。

これが現在のJSONです

{
"CRN":516612
}

PHP で行う必要があるのは、"email":"EMAIL ACCOUNT" がない場所を検索することです。

通常の find() が機能しません。

4

1 に答える 1

1

メール フィールドが設定されていないドキュメントを選択するには、次のようにします。

db.collection.find({"email":{$exists:false}})

この条件に一致するドキュメントに電子メール アドレスをアトミックに保存するには、次のようにします。

db.collection.update({"email":{$exists:false}},{$set:{"email":"new@email.com"}})

メールを割り当てたばかりの CRN を取得する必要がある場合は、findAndModifyを使用します。

q = db.collection.findAndModify({query:{email:{$exists:false}},
                                 update:{$set:{email:"new@email.com"}}})

q には、変更したばかりのドキュメントが含まれます (CRN と _id を使用しますが、電子メールは使用しません。オプションを使用して電子メールを取得することもできます。

于 2012-06-17T18:24:25.330 に答える