文件:
{
"_id" : ObjectId("5399ba7f8035beb2d4717cc0"),
"listName" : "firstList",
"items" : [
{
"pName" : "iPad ",
"pDesc" : "iPad aiiir",
"ownerID" : ObjectId("5399b596c501732dd4d13923"),
"_id" : ObjectId("5399e2cc2d7b0349d89d2b44"),
"dateAdded" : ISODate("2014-06-12T17:26:36.282Z")
},
{
"pName" : "iPhone ",
"pDesc" : "5s",
"ownerID" : ObjectId("5399b596c501732dd4d13923"),
"_id" : ObjectId("5399e2cc2d7b0349d89d2b44"),
"dateAdded" : ISODate("2014-06-12T17:26:36.282Z")
}
]}
我想从“数组”项中删除一个项,而不知道文档的_id,只知道元素的id,我有一个查找元素的查询,它在mongodb shell中工作,但在mongoose中不工作,
db.lists.find( {items:
{$elemMatch:{'_id':ObjectId("5399b596c501732dd4d13923")}}} ,
{"items.$":1});
你知道为什么吗?
你能给我同等的猫鼬吗?
我应该如何从列表中提取该项,而只知道它的_id?
多亏了Yves Amsellem,我找到了解决我问题的猫鼬方案。他的答案是猫鼬式的:
Lists.update(
{},
{$pull: {items: {_id: iProductId}}},
{ multi: true },
function(err, data){
console.log(err, data);
}
);
这应该可以做到:
db.lists.update(
{},
{ $pull: {"items": {"_id" :ObjectId("5399e2cc2d7b0349d89d2b44") }},
{ multi: true }})
对于集合中的每个文档({}
表示空查询),它删除具有提供的_id
(在项
数组中)的每个项。如果没有多
选项,只有找到的第一个文档会受到影响
我是mongoDB新手,在使用Mongoose从mongoDB中的数组中删除团队对象时遇到困难。我的用户收藏看起来像; 我的移除路线看起来像; 控制台在用户之前和之后记录日志。更新是完全相同的,我没有得到任何错误抛出。控制台的输出。日志(错误、数据)最终被删除 我不知道该怎么解释。我也尝试过不按这里的建议传入userID;https://stackoverflow.com/a/24289161/5
问题内容: 文件: 有没有办法从数组中提取特定对象?IE如何从项数组中提取ID为23的整个项对象。 我努力了: 但是我很确定我没有正确使用’pull’。据我了解,pull将从数组中拉出字段,而不是对象。 关于如何将整个对象从数组中拉出的任何想法。 另外,我尝试在mongoose / nodejs中执行此操作,也不确定这种类型的内容是否在mongoose API中,但我找不到它。 问题答案: 尝试.
在mongodb中,我有一个集合,其中数组有重复的条目,如 我需要删除重复的数组,只保留唯一的数组值,如下所示。 最好的方法是什么 谢啦
问题内容: 我正在使用Mongoose库通过node.js访问MongoDB 有没有办法 从文档中删除密钥 ?即不只是将值设置为null,而是将其删除? 问题答案: 在早期版本中,您需要删除node-mongodb-native驱动程序。每个模型都有一个收集对象,该对象包含node-mongodb- native提供的所有方法。因此,您可以执行以下操作: 从2.0版开始,您可以执行以下操作: 从2
我想用相当复杂的方案更新文档。 我想用原子更新来做(而不是在内存中修改它,然后调用.save())。 }); ////////////////////////////////////////////////////////////// 我有事件id(_id)、会话(id)和需要添加/删除项到投票人数组。
我有一个叫酒吧的收藏。每个文档都包含一个名为cocktails的字符串数组,以便: 使用Spring mongodb,我将删除每个“sexontheBeach”,以便: 泰提前。