假设我有以下收藏:
{
"_id":ObjectId("562e7c594c12942f08fe4192"),
"first":[
{
"shape":"square",
"color":"blue"
},
{
"shape":"circle",
"color":"red"
}
],
"second": []
}
我想做的是,首先在first
数组中找到一个特定的对象,然后将其移至second
字段
db.collection.findOneAndUpdate({_id: ObjectId("562e7c594c12942f08fe4192")}, {$pull: {first: {color: "red"}}, $push: {// that specific object to second array}})
答案 0 :(得分:2)
这不能通过单个操作完成。不过,您可以改为这样做:
MyModel.findOne({ _id: ObjectId("562e7c594c12942f08fe4192"), "first.color": "red" }, 'first.$', function (err, doc) {
MyModel.findByIdAndUpdate(ObjectId("562e7c594c12942f08fe4192"), {
$pull: { first: { color: "red" } },
$push: { second: doc.first[0] }
}, function (err, docs) { })
});
答案 1 :(得分:0)
使用游标尝试此操作。
df['Qdate'] = df['Date'].dt.to_period("Q").dt.end_time
将“蓝色”替换为您选择的项目。
这将对您的示例有效,但是将在第二秒内删除所有先前的项目。
如果您只是想附加它,那应该可以。
.start_time