Javascript 无法将类似56AEA43CB6BE3800616B07的字符串$push到mongodb中的数组
Javascript 无法将类似56AEA43CB6BE3800616B07的字符串$push到mongodb中的数组,javascript,mongodb,Javascript,Mongodb,\u id=56AEA43CB6BE3800616B07 我试图在mongodb中的shareids数组中插入一个长字符串,如56AEA43CB6BE3800616B07,但总是失败“意外令牌非法” 我用mongo命令尝试了这个简单的方法,它必须是“56AEA43CB6BE380061607”才能工作 但是我用typeof检查了\u id的类型,它是一个字符串。我试图设置它ObjectID(\u id),但还是一样。我怎样才能把这事办完?谢谢 collection.update({
\u id=56AEA43CB6BE3800616B07代码>
我试图在mongodb中的shareids
数组中插入一个长字符串,如56AEA43CB6BE3800616B07
,但总是失败“意外令牌非法”
我用mongo命令尝试了这个简单的方法,它必须是“56AEA43CB6BE380061607”才能工作
但是我用typeof
检查了\u id
的类型,它是一个字符串。我试图设置它ObjectID(\u id)
,但还是一样。我怎样才能把这事办完?谢谢
collection.update({
"name": name
}, {
$push: {
"shareids":
ObjectID(_id)
}}, function (err) {
if (err) {
console.log("update failed.");
mongodb.close();
return callback(err);
}
使用以下命令可能会发生“意外令牌非法”
> db.collection.update({name: 'test'}, {$push: {shareids: ObjectId(56aea43cb6be380000616b
07)}})
2016-02-01T11:34:35.738+0800 SyntaxError: Unexpected token ILLEGAL
但是,在下面的数字中加上引号,就可以了
> db.collection.update({name: 'test'}, {$push: {shareids: ObjectId('56aea43cb6be380000616
b07')}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
您如何将\u id
定义为变量?您的错误消息似乎表明您发出了引号,事实上,这将是产生错误的另一行代码。您是否直接将ObjectID
作为函数导入?是的,我确实导入了ObjectID。因此出现了错误。因此,您可能需要var ObjectID=require(“mongo”).ObjectID
包含在代码中以解析“意外令牌”。是的,我导入了ObjectID。我的观点是:如何将56AEA43CB6BE380061607转换为“56AEA43CB6BE380061607”?正如我前面所说的,它是一个字符串,因此您需要引号。没有字符串引号的任何内容都将是“意外标记”。现在明白了吗?_id=“””+_id+“”;我想这就是我所追求的:)原始\u id
的类型是什么?我认为这个线程与我所追求的非常相似:仍然不工作:db.collection.update({name:'test'},{$push:{shareids:ObjectId('56AEA43CB6BE3800616 b07')})和mongo API。但是可以使用mongo命令。@ChanAustin,mongoose API不工作吗?