更新:这里的问题是本机MongoDB驱动程序需要与Mongoose不同格式的objectID。我需要做的不是{_id:story_id},而是{_id:new mongoose.types.objectid(story_id)}。它只返回这两个字段的原因是它正在创建一个带有{_id:story_id}的新文档,而不是更新{_id:{$oid:story_id}}的文档。然而,我最初使用本地驱动程序vs mongoose来做这件事的原因是不起作用。即使是本机驱动程序也不接受正的$slice值。因此,我仍然在寻找一种方法,使用Mongoose或通过Mongoose访问的本地驱动程序(它不支持$position或正的$slice值)将对象插入数组的开头。
当我运行下面的查询时,返回的结果只包括_ID、消息和参与者。我想要得到完整的故事记录回来,而不仅仅是更新的字段。有办法做到这一点吗?根据Node MongoDB原生驱动程序文档(http://MongoDB.github.io/node-mongoDB-native/api-generated/collection.html#findAndModify),来自mongo控制台的“fields”参数没有在findAndModify驱动程序中实现。我想避免进行第二次查询以获得刚刚更新的记录。
Story.collection.findAndModify(
{"_id": story_id},
{"_id": "asc"},
{
"$push": {
"messages": {
"$each": [message],
"$sort": { "_id": -1},
"$slice": 500
},
},
"$addToSet": {"participants": user_id},
},
{new: true},
{fields: {"feeling":1, "description":1, "image_height":1, "image_width":1, "storyteller":1, "image_url":1, "participants":1}}, // -> this line is ignored by MongoDB native driver
{upsert: true}
)
可以使用$eace
和$position
修饰符(Mongoose支持)在数组字段的开头插入元素:
Story.findByIdAndUpdate(story_id, {
$push: {
messages: {
$each: [message],
$position: 0
},
},
$addToSet: {participants: user_id},
}, {
new: true,
upsert: true
},
function (err, newDoc) { ... }
);
本文向大家介绍PHP如何使用array_unshift()在数组开头插入元素,包括了PHP如何使用array_unshift()在数组开头插入元素的使用技巧和注意事项,需要的朋友参考一下 PHP array_unshift() 函数用来在数组开头插入一个或多个元素,其语法如下: int array_unshift ( array &$arr , mixed $value1 [, mixed $va
我想在另一个数组的开头插入一个数组。我怎样才能在斯威夫特做到这一点? 基本上,当用户滚动到顶部时,我从服务器获取数据,并希望在顶部而不是底部呈现新数据。 这是我的代码:
问题内容: 我需要在数组的开头添加或添加元素。 例如,如果我的数组如下所示: 我的AJAX调用的响应是,我希望更新后的数组如下所示: 目前,我正打算这样做: 有什么更好的方法吗?Javascript是否具有执行此操作的任何内置功能? 我的方法很复杂,看到更好的实现将真的很有趣。 问题答案: 使用。就像一样,除了它在数组的开头而不是结尾添加元素。 // -将元素添加到数组的开头/结尾 // -删除并
我想根据文档id和元素id向上插入数组中的元素。当前,只有当数组中的元素已准备就绪时,它才起作用(更新有效,插入无效)。 因此,这些集合: 收到此请求: 将给出此ok结果: 如何使相同的请求适用于这些初始集合: 或 如何使upert工作?upert仅适用于整个文档吗?目前,我面临这个错误: 位置运算符未从查询中找到所需的匹配项。 谢谢
问题内容: 我只能用String来做到这一点,例如: 有没有办法用StringBuilder做到这一点?谢谢。 问题答案: 警告: 它违背了的目的,但确实满足您的要求。 更好的技术 (尽管仍然不理想): 反转要插入的 每个 字符串。 将 每个字符串 附加 到。 完成后反转 整个 过程。 这将打开一个O( ñ ²)溶液到O( Ñ )。
问题内容: 到目前为止,我已经能够找到如何在文件的开头添加一行,但这并不是我想要的。我会在一个例子中展示 档案内容 结果 相似,但是我不想用它创建任何新行… 如果可能的话,我想这样做。 问题答案: 可以在一个地址上运行: 您在这里的每个答案中看到的神奇之处是什么?线路寻址!。 要添加前10行吗? 或者您可以使用: