2012-06-17 1 views
0

Итак, у меня есть коллекция базы данных с 1000 номерами CRN, которые мне нужно выдать нашим клиентам.mongoDB - если строка не имеет

Мы используем MongoDB, и я хотел бы выпустить номер CRN на учетную запись электронной почты.

так вот наш текущий JSON

{ 
"CRN":516612 
} 

то, что мне нужно сделать в PHP это сделать находку, где он не имеет «электронная почта»: «EMAIL СЧЕТ»

Если кто-то может помочь поскольку я не могу получить нормальную работу find().

+0

Вы пытались найти с {"email": {$ exists: false}}? –

ответ

1

Чтобы выбрать документ, который не имеет в комплект электронной почты поле вы могли бы сделать:

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

Чтобы сохранить адрес электронной почты атомарно в документе, который соответствует этому условию, вы могли бы сделать:

db.collection.update({"email":{$exists:false}},{$set:{"email":"[email protected]"}}) 

Если вам необходимо вернуть CRN, что вы только что назначенный по электронной почте, чтобы вы использовали бы findAndModify:

q = db.collection.findAndModify({query:{email:{$exists:false}}, 
           update:{$set:{email:"[email protected]"}}}) 

q будет иметь документ, который вы только что изменили (с CRN и _id, но не с электронной почтой - вы можете использовать опцию для получения электронной почты.