Mongodb创建一个以日期为关键字的数组?

时间:2012-06-08 09:22:56

标签: php mongodb

Mongo创建一个以日期为关键字的数组?

[_id] => MongoId Object (
    [$id] => 4fcf2f2313cfcd225700000d
)
[id] => 14
[name] => Aryan Roban
[news] => Array (
    [08-06-2012] => 12
)

这里我想要一个make news作为数组,其中日期为关键以及如何删除特定的键行?

例如

我想在新闻数组中删除带有键'08 -06-2012'的数组元素,我不知道它的价值。

2 个答案:

答案 0 :(得分:0)

查找文档不会有问题,这很容易。只需查看news是否有符合您搜索条件的密钥:

db.foo.find({'news.08-06-2012': {'$exists': true}})

不要忘记在news上添加索引。

但删除它们并不容易。还有另一个线程显示了一种方法,但它实际上是一种解决方法:In mongoDb, how do you remove an array element by its index遗憾的是,这仅适用于具有数字索引的数组,而不适用于关联数组。

也许你可以使用自己的收藏来获取新闻?然后,您可以轻松更新和删除它们。否则,您可以从数据库加载完整的文档,操作应用程序中的新闻并在之后保存。这将需要两个数据库查询,但应该可以工作。

答案 1 :(得分:0)

我们可以使用

db.foo.update({/*...*/}, {$unset: {'news.11-06-2012', 1}})