如何在集合之间移动数组元素?

时间:2013-12-23 18:50:28

标签: node.js mongodb node-mongodb-native

我有三个文件的以下集合:

{
   _id: 1
   items: ['1a', '1b', '1c']
},
{
   _id: 2,
   items: ['2a', '2b', '2c']
},
{
   _id: 3,
   items: []
}

我有一个查询必须从它们对应的'1a','1c','2a','2b'元素移动 文档到_id:3的文档。

我需要得到以下结果:

{
   _id: 1
   items: ['1b']
},
{
   _id: 2,
   items: ['2c']
},
{
   _id: 3,
   items: ['1a','1c', '2a', '2b']
}

请帮帮我。什么是解决我的问题的更好的解决方案?

3 个答案:

答案 0 :(得分:0)

我认为移动操作没有任何特定的操作符。但是,我认为您可以使用$ push或$ addToSet运算符进行此添加操作,如下所示,然后从1& 2份文件。

db.testcollection.update({_id:3}, {$addToSet:{ ... }})

答案 1 :(得分:0)

首先,您需要解释为什么要这样做。因为你想做的只是这个操作符而不添加其他操作,我想知道最简单的方法就是这样:

  1. 从db
  2. 获取结果
  3. 按照您的意愿进行操作
  4. 删除旧记录并将修改记录保存到db
  5. 虽然这个想法听起来很傻,但它很有用。 如果您有深刻的要求,请将它们交给我们。

答案 2 :(得分:-1)

使用带有$ set操作的update()

db.test1.update({_id:1},{$set:{items:['1b']}})

这将更新您的数组。

谢谢,