我想使用数组作为与此文档关联的文档的计数器。每个数组元素对应一个文档,该数组中的数字对应于该文档的一些数据。这些数字不与其关联的文档一起存储,因此可以对“主”文档的字段以及“关联”文档的数组中的数据执行查询。
由于 $inc 和数组初始化的变幻莫测,似乎没有办法做到这一点:
> use foo
switched to db foo
> db.foo.save({id: []})
> db.foo.update({}, {$inc: {'id.4': 1}})
> db.foo.find().pretty()
{
"_id" : ObjectId("5279b3339a056b26e64eef0d"),
"id" : [
null,
null,
null,
null,
1
]
}
> db.foo.update({}, {$inc: {'id.2': 1}})
Cannot apply $inc modifier to non-number
有没有办法增加一个空值或用零初始化数组?
另一种方法是以键/值格式存储数组值,因此这将是一个稀疏数组,但是没有办法将其插入到数组中,这使得该替代方案不可行。