2014-01-17 101 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" } } 
)