Вы можете использовать $ или $ elemMatch. Оператор $ и оператор $ elemMatch проецируют подмножество элементов из массива на основе условия.
Оператор проекции $ elemMatch принимает явный аргумент условия. Это позволяет вам проектировать на основе условия, которого нет в запросе.
db.collection.find(
{
// <expression>
},
{
notes: {
$elemMatch: {
title: 'Hello MongoDB'
}
},
name: 1
}
)
Оператор $ проецирует элементы массива на основе некоторого условия из оператора запроса.
db.collection.find(
{
'notes.title': 'Hello MongoDB'
},
{
'notes.title.: 1,
name: 1
}
)
Это тот, который я использую agsXMPP , и у меня никогда не было проблем с ним, хотя, по общему признанию, я не настаиваю на этом так сильно.
Библиотеки, построенные на платформе 2.0, должны нормально работать в вашем проекте 3.5 или 4.0, или вы можете перекомпилировать их, если хотите. Jabber-Net , похоже, нормально работает в обоих этих режимах.