2014-01-17 104 views
0

我有一个蒙戈DB结构女巫看起来是这样的:用我的应用程序明确js和该模块连接到蒙戈https://npmjs.org/package/mongodbMongoDB中插入记录的问题

db.users.find().pretty(); 
{ 
    "_id" : ObjectId("52b42b148ffa91f7ebbe8ebc"), 
    "username" : "test", 
    "password" : "test", 
    "party" : [ 
     "4988", 
     "5037" 
    ], 
    "something" : [ 
     "3571" 
    ], 
    "ludilo" : [], 


} 

IM,

我如何可以插入一个进入ID为“东西”阵列用户,我从会议

我想这样的事情搞定了,但没有成功

var collection = db.collection('users'); 
     collection.find({'_id':new ObjectID(req.user.id)}).toArray(function(err, items) { 
      console.dir(items); 
      }).insert({"something":"1234"}); 
+0

您是否尝试过'collection.update({_ id:new ObjectID(req.user.id)},{$ set:{something:'1234'}})'?不知道这是否工作 – Curious

+0

我不想更新,我想插入 –

+0

如果你只是想插入,你不必使用'_id'。 '_id'会在每次插入时自动生成 – Curious

回答

0

你可以试试这个代码:

collection.find({_id: new ObjectID(req.user.id)}).toArray(function(err, items) { 
    var doc = items[0]; 
    doc.something.push('1234'); 
    collection.update({_id: doc._id}, {$set: {something: doc.something}}, {safe: true}, function() { 
    //your next actions 
    }); 
}); 

我我的本地机器上运行该代码,它似乎做工精细

+0

@Djordje Petrovic我编辑了代码。请参阅更改。希望这可以帮助) – Curious

2

您可以$push值到一个数组与

db.users.update(
    { _id: ObjectId("52b42b148ffa91f7ebbe8ebc") }, 
    { $push: { something: "1234" } } 
) 

或者如果你不想在你的阵列中有任何副本,你可以使用$addToSet

db.users.update(
    { _id: ObjectId("52b42b148ffa91f7ebbe8ebc") }, 
    { $addToSet: { something: "1234" } } 
)