我的gameItem集合中有数以千计的项目,以下为例。
{
"weapon name 1":{price:01},
"weapon name 2":{price:100}
}
我在shell
中运行这样的查询db.gameItems.find({"weapon name 1":{$exists:1}})
什么都没有返回,但是当我的键没有空格时它会起作用...
第一个问题:有没有办法用空格搜索键值? 第二个问题:我应该改变我的数据模型吗?:
{
weapon:{name: "weapon name 1", price:01}
weapon:{name: "weapon name 2", price:100}
}
然后在武器名称字段中添加索引?这是否会增加每个武器文档中只有2个字段的搜索性能?
由于
编辑:
道歉,似乎db collection gameItems实际上看起来像这样......
{
last_updated:"2016-04-01",
items:{
"weapon name 1":{price:01},
"weapon name 2":{price:100}
}
}
那么如何在项目文档中搜索它们呢?
答案 0 :(得分:2)
使用单引号,其中key有空格。
在下面跑。
db.gameItems.find({'weapon name 1':{$exists:1}})