Có thể thay đổi truy vấn đầu tiên của bạn thành:
db.userlinks.update (
{_id: 1, tags: {$nin: [{tag:'foo'}]}},
{$push: {'tags': {tag:'foo', links:[]}}},
{upsert: true}
)
Thao tác $ push chỉ ảnh hưởng đến các liên kết, không ảnh hưởng đến thẻ.
{$push: {'tags.links': {link: 'http://www.google.com', date: '123'} } },