我有这样的文件:
db.planet.insert({
name: 'Earth',
stuff: {
'grass': 'green',
'sky': 'blue',
'sea': 'blue'
}
})
db.planet.insert({
name: 'Mars',
stuff: {
'dust': 'red',
'sky': 'yellow'
}
})
我想找到所有至少有一些blue
东西的行星(在这种情况下只有地球)。我怎样才能做到这一点?
Catch:我尝试通过使用数组(而不是对象)来解决这个问题(),但我还需要能够更新(确切地说是upsert )一些东西的值。例如,我必须能够做到这一点:stuff: [ { k: 'grass', v: 'green'},... ]
db.planet.update({ name: 'Mars' }, {
'$set': {
'stuff.canals': 'brown',
'stuff.dust': 'reddish'
}
})
那么,我怎样才能找到上面有东西的行星blue
呢?:)