擅长:python、mysql、java
<p><a href="http://www.mongodb.org/display/DOCS/Updating#Updating-The%24positionaloperator" rel="nofollow">Positional operator</a>就可以了</p>
<pre><code>> db.Users.find({'username':'johncit','smart_searches':{'$elemMatch':{'name':'blabla'}}},{'smart_searches.$.terms':1}).pretty()
{
"_id" : ObjectId("5099ab303d550a068f16d5c5"),
"smart_searches" : [
{
"name" : "blabla",
"terms" : {
"title" : "whatever",
"otherfield" : 500
}
}
]
}
</code></pre>
<p><strong>更新:</strong></p>
<p>要使用位置运算符更新术语,可以编写</p>
<pre><code>db.Users.update({'username':'johncit',
'smart_searches':{'$elemMatch':{'name':'blabla'}}},
{$set:{'smart_searches.$.terms':{title:'changed',otherfield:200}}},
false,true)
</code></pre>