User.update(
{ /* все юзеры */ },
{ $pull:
{ tasks: { $oid: task_id } }
}
)
Service.updateOne(
{ services: 1 /* * */ },
{ $unset: { '4': '' } }
)
// не сработает, потому что я не понимаю, как именно выделить этот документ
db.posts.aggregate([
{ $match: { "tag": "test" } },
{ $sample: { size: 3 } }
])
const chats = await Chat.find({ 'chatMembers.username': { $in: ['usver', 'another_user'] } })
$and: [
{"data.0.value": { $gte:100 } },
{"data.0.value" :{ $lte:150 } }
]
User.updateOne(
// нужен айдишник для элемента, чтобы его выбрать из базы
{ email: email, 'tablesState._id': table_id },
// тогда можно будет так
{ $set: { 'tablesState.$' : tablesStateElement } }
)
// не надо await добавление в массив
fam.FamilyInfo.FamilyMembers.push(user.id)
fam.FamilyInfo.FamilyMembersDescr.push(`<@${user.id}>`)
fam.markModified('FamilyInfo')
// возможно придется сообщать об изменении каждого вложенного массива
// fam.markModified('FamilyInfo.FamilyMembers') // ?
await fam.save()
db.collection.updateMany(
{ "parseDate": "2020-07-29T00:00:00.000Z", "order" : "SOME" },
{ $set: { "TRIP": 0.0061, "OKS": 93.33991119881563 } },
{ upsert: true } // если ничего не найдет, то пусть сделает новый документ БД
)
db.collection.aggregate([
{
'$addFields': { // новое поле nums
'nums': {
'$concatArrays': [ // соберем из foo bar
'$foo', [ '$bar' ]
]
}
}
}, {
'$project': { // только оно нам нужно
'nums': 1
}
}, {
'$unwind': { // ВСЕ номера
'path': '$nums'
}
}, {
'$match': { // уберем пустые строки и null и прочий мусор
'nums': {
'$type': 'number'
}
}
}, {
'$group': { // addToSet то есть только уникальные
'_id': null,
'nums': {
'$addToSet': '$nums'
}
}
}, { // здесь можно остановиться
'$unwind': { // дальше только чтобы отсортировать, потому что сет не будет отсортирован
'path': '$nums'
}
}, {
'$sort': {
'nums': 1
}
}, {
'$group': {
'_id': null,
'nums': {
'$push': '$nums'
}
}
}
])
// и не так
{
"myfunc": function() { //My code }
}
// а так
{
_id: "myfunc",
value : function(x) { return x; }
}
"views": [
{
date: '23072020-11', // а еще лучше в формате Date, а не строкой
count: 1
}
]
analytics.update_one(
{ article_id: a_id, 'views.date': '23072020-11' }, // тогда было бы несложно получить объект
{ $inc: {
'views.$.count': 1 // и как-то так получилось бы
}
}
)
data[1] хранит в себе значение поля login
Post.aggregate([
{
$lookup: {
from: 'definitions',
localField: 'definition',
foreignField: '_id',
as: 'definitions'
}
},
{
$match: {
'definitions.likes': { $gte: 10 }
}
}
])
cart: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'Item'
// массив айдишников айтемов из коллекции items
}]
User.findOne({ _id: '......user id ......' }).populate('cart')
for (const obj of parsedObjects) {
const dbObject = dbObjects.find(elem => elem.id === obj.id)
.....
// а вот здесь наверно получится
await dbObject.save()
}
.findOneAndUpdate(
{ id: 8946, 'e.type': 'model', 'e.value': 1 },
{
$set: {
'e.$.other': { ...newOtherData } // новый объект
}
}
)