1
說我有一個這樣的一堆文件,一個蒙戈DB:
{
key: 'somekey',
events: [
{event_id: '001', event_info: 'blah'},
{event_id: '001', event_info: 'blah'},
...etc
]
}
我想一個新的事件添加到文檔,其中的事件列表key ='X',但僅限於該事件(由event_id標識)尚未出現。
我嘗試這樣做:
collection.update({
'key': newKeyValue,
$not { events.event_id: newEventId }
},
{
'$push': { 'events': newEvent }
},
{
'upsert': true
});
但我得到的錯誤: 「MongoError:未知名頂級運營商:$不」。
我該如何做這樣的否定?
另請注意:我希望能夠在一個原子操作中做到這一點。我知道我可以用多個查詢來做到這一點,但是如果我以後想用批量操作來設置它,那就行不通了。
你真的想'$ ne'這裏這個案件。此外,不要在與「upsert」相結合的情況下使用否定。你可能應該做兩個操作。 [請參見使用MongoDB模擬「喜歡」投票系統](https://stackoverflow.com/questions/28006521/how-to-model-a-likes-voting-system-with-mongodb) –