mongoDB - 如果行没有

时间:2012-06-17 05:49:53

标签: mongodb mongodb-php mongodb-query

我有一个数据库集合,我需要向客户发出1000个CRN号码。

我们使用MongoDB,我想将CRN号码发给电子邮件帐户。

所以这是我们当前的JSON

{
"CRN":516612
}

我需要在PHP中做的是查找没有“电子邮件”的地方:“电子邮件帐户”<​​/ p>

我无法正常查找()。

1 个答案:

答案 0 :(得分: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但不包含电子邮件 - 您也可以使用选项来回复电子邮件。